From 61cf2d0a39ff1d4b215a619d792a4bdbbc55dc45 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Fri, 21 May 2010 18:27:40 +0200 Subject: [PATCH 01/29] Fix issues with long project names in the minitargetselector It's impossible to use very long names and some clipping occurs due to incorrect size hints on QLabel. - Made the popup minimum width depend on the longest project name entered. (it will not shrink) - The build and run labels have increased minimum size hints. - Combobox tooltip will be set to the project name as to make it possible to expand long names. Task-number: QTCREATORBUG-1278 RevBy: joao --- .../miniprojecttargetselector.cpp | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp index b71e78f07f5..48ed61edae3 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -252,15 +252,19 @@ MiniTargetWidget::MiniTargetWidget(Target *target, QWidget *parent) : QFormLayout *formLayout = new QFormLayout; formLayout->setLabelAlignment(Qt::AlignRight); QLabel *lbl; + int indent = 10; if (hasBuildConfiguration()) { lbl = new QLabel(tr("Build:")); lbl->setObjectName(QString::fromUtf8("buildLabel")); - lbl->setIndent(10); + lbl->setMinimumWidth(lbl->fontMetrics().width(lbl->text()) + indent + 4); + lbl->setIndent(indent); + formLayout->addRow(lbl, buildHelperLayout); } lbl = new QLabel(tr("Run:")); lbl->setObjectName(QString::fromUtf8("runLabel")); - lbl->setIndent(10); + lbl->setMinimumWidth(lbl->fontMetrics().width(lbl->text()) + indent + 4); + lbl->setIndent(indent); formLayout->addRow(lbl, runHelperLayout); gridLayout->addWidget(m_targetName, 0, 0); @@ -310,6 +314,8 @@ void MiniTargetWidget::addRunConfiguration(ProjectExplorer::RunConfiguration* rc { connect(rc, SIGNAL(displayNameChanged()), SLOT(updateDisplayName())); m_runComboBox->addItem(rc->displayName(), QVariant::fromValue(rc)); + m_runComboBox->setItemData(m_runComboBox->findText(rc->displayName()), + rc->displayName(), Qt::ToolTipRole); if (m_target->activeRunConfiguration() == rc) m_runComboBox->setCurrentIndex(m_runComboBox->count()-1); @@ -327,6 +333,8 @@ void MiniTargetWidget::addBuildConfiguration(ProjectExplorer::BuildConfiguration QTC_ASSERT(m_buildComboBox, return); connect(bc, SIGNAL(displayNameChanged()), SLOT(updateDisplayName())); m_buildComboBox->addItem(bc->displayName(), QVariant::fromValue(bc)); + m_buildComboBox->setItemData(m_buildComboBox->findText(bc->displayName()), + bc->displayName(), Qt::ToolTipRole); if (m_target->activeBuildConfiguration() == bc) m_buildComboBox->setCurrentIndex(m_buildComboBox->count()-1); @@ -401,7 +409,6 @@ MiniProjectTargetSelector::MiniProjectTargetSelector(QAction *targetSelectorActi m_projectsBox->setProperty("hideborder", true); m_projectsBox->setObjectName(QString::fromUtf8("ProjectsBox")); m_projectsBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); - m_projectsBox->setMaximumWidth(200); toolLayout->addWidget(lbl); toolLayout->addWidget(new Utils::StyledSeparator); @@ -576,6 +583,10 @@ void MiniProjectTargetSelector::updateAction() QString runConfig; QIcon targetIcon = style()->standardIcon(QStyle::SP_ComputerIcon); + const int extrawidth = 110; // Size of margins + icon width + // Some fudge numbers to ensure the menu doesnt grow unbounded + int maxLength = fontMetrics().averageCharWidth() * 140; + if (project) { projectName = project->displayName(); @@ -585,10 +596,14 @@ void MiniProjectTargetSelector::updateAction() } if (BuildConfiguration *bc = target->activeBuildConfiguration()) { buildConfig = bc->displayName(); + int minimumWidth = fontMetrics().width(bc->displayName() + tr("Build:")) + extrawidth; + m_widgetStack->setMinimumWidth(qMin(maxLength, qMax(minimumWidth, m_widgetStack->minimumWidth()))); } if (RunConfiguration *rc = target->activeRunConfiguration()) { runConfig = rc->displayName(); + int minimumWidth = fontMetrics().width(rc->displayName() + tr("Run:")) + extrawidth; + m_widgetStack->setMinimumWidth(qMin(maxLength, qMax(minimumWidth, m_widgetStack->minimumWidth()))); } targetToolTipText = target->toolTip(); targetIcon = createCenteredIcon(target->icon(), target->overlayIcon()); From 91cd56e0c606f342affb087e254346f78986c3f1 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Fri, 21 May 2010 19:35:33 +0200 Subject: [PATCH 02/29] Anticipatory code fix, will currently not affect behavior. appendDataSilently() is only called from appendData() which is not silent anyway. The connect in GitClient::createCommand() is currently not executed. --- src/plugins/vcsbase/vcsbaseoutputwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/vcsbase/vcsbaseoutputwindow.cpp b/src/plugins/vcsbase/vcsbaseoutputwindow.cpp index df6f201d9ad..d89a9b9ba5c 100644 --- a/src/plugins/vcsbase/vcsbaseoutputwindow.cpp +++ b/src/plugins/vcsbase/vcsbaseoutputwindow.cpp @@ -381,7 +381,7 @@ void VCSBaseOutputWindow::appendData(const QByteArray &data) void VCSBaseOutputWindow::appendDataSilently(const QByteArray &data) { - append(QTextCodec::codecForLocale()->toUnicode(data)); + appendSilently(QTextCodec::codecForLocale()->toUnicode(data)); } VCSBaseOutputWindow *VCSBaseOutputWindow::instance() From 6ab2dddc0eb7d77216631501161063875d65950c Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 24 May 2010 10:05:43 +0200 Subject: [PATCH 03/29] Update Polish translations --- share/qtcreator/translations/qtcreator_pl.ts | 2885 +----------------- 1 file changed, 33 insertions(+), 2852 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_pl.ts b/share/qtcreator/translations/qtcreator_pl.ts index 3b9405ef944..b109d22c8da 100644 --- a/share/qtcreator/translations/qtcreator_pl.ts +++ b/share/qtcreator/translations/qtcreator_pl.ts @@ -102,10 +102,6 @@ ExtensionSystem::Internal::PluginView - - State - Stan - Name @@ -121,10 +117,6 @@ Vendor Dostawca - - Location - Położenie - Load @@ -151,10 +143,6 @@ Utils::WizardPage - - Choose the location - Wybierz położenie - Name: @@ -173,34 +161,6 @@ Utils::NewClassWidget - - Class name: - Nazwa klasy: - - - Base class: - Klasa podstawowa: - - - Header file: - Plik nagłówkowy: - - - Source file: - Plik źródłowy: - - - Generate form: - Wygeneruj formularz: - - - Form file: - Plik z formularzem: - - - Path: - Ścieżka: - Invalid base class name @@ -226,10 +186,6 @@ Inherits QObject Wywiedziony z QObject - - Type information: - Informacja o typie: - None @@ -349,10 +305,6 @@ New Project Nowy projekt - - 1 - 1 - Choose a template: @@ -405,78 +357,8 @@ Automatycznie zachowuj wszystkie pliki przed budowaniem - - SettingsDialog - - Options - Opcje - - - 0 - 0 - - - - ShortcutSettings - - Keyboard Shortcuts - Skróty klawiszowe - - - Filter: - Filtr: - - - Command - Komenda - - - Label - Etykieta - - - Shortcut - Skrót - - - Defaults - Domyślne - - - Import... - Importuj... - - - Export... - Eksportuj... - - - Key Sequence - Sekwencja klawiszy - - - Shortcut: - Skrót: - - - Reset - Przywróć - - - Remove - Usuń - - Core::Internal::GeneralSettings - - General settings - Ustawienia ogólne - - - User &interface color: - Kolor &interfejsu użytkownika: - Reset to default @@ -512,10 +394,6 @@ Always ask Zawsze pytaj - - Reload all modified files - Przeładuj wszystkie zmodyfikowane pliki - Ignore modifications @@ -541,10 +419,6 @@ The language change will take effect after a restart of Qt Creator. Zmiana języka zostanie zastosowana przy ponownym uruchomieniu Qt Creatora. - - Environment - Środowisko - Variables @@ -593,10 +467,6 @@ Form Formularz - - Server Prefix: - Przedrostek serwera: - <html><head/><body> @@ -670,18 +540,6 @@ <Description> <Opis> - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">&lt;Comment&gt;</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">&lt;Komentarz&gt;</span></p></body></html> - Parts to send to server @@ -718,22 +576,6 @@ p, li { white-space: pre-wrap; } General Ogólne - - Default Protocol: - Domyślny protokół: - - - CodePaster - CodePaster - - - Pastebin.ca - Pastebin.ca - - - Pastebin.com - Pastebin.com - Username: @@ -749,10 +591,6 @@ p, li { white-space: pre-wrap; } Display Output Pane after sending a post Pokazuj panel z komunikatami po wysłaniu kodu - - Code Pasting - Wklejanie kodu - Default protocol: @@ -761,18 +599,6 @@ p, li { white-space: pre-wrap; } CompletionSettingsPage - - Code Completion - Uzupełnianie kodu - - - Do a case-sensitive match for completion items. - Uwzględniaj wielkość liter w uzupełnianych elementach. - - - &Case-sensitive completion - Uwzględniaj &wielkość liter w uzupełnieniach - Automatically insert (, ) and ; when appropriate. @@ -827,10 +653,6 @@ p, li { white-space: pre-wrap; } CppFileSettingsPage - - File Naming Conventions - Konwencje nazewnictwa plików - Header suffix: @@ -846,10 +668,6 @@ p, li { white-space: pre-wrap; } Lower case file names Tylko małe litery w nazwach plików - - License Template: - Szablon z licencją: - License template: @@ -858,31 +676,11 @@ p, li { white-space: pre-wrap; } CVS::Internal::SettingsPage - - Prompt to submit - Pytaj przed wysłaniem zmian do serwera - When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit id). Otherwise, only the respective file will be displayed. Gdy zaznaczone, wszystkie pliki powiązane z bieżącą operacją zostaną wyświetlone po kliknięciu na numer rewizji w widoku adnotacji (odzyskane przez identyfikator operacji). W przeciwnym razie, wyświetlony będzie tylko określony plik. - - Describe all files matching commit id: - Opisz wszystkie pliki pasujące do identyfikatora operacji: - - - CVS Command: - Komenda CVS: - - - CVS Root: - Korzeń CVS: - - - Diff Options: - Parametry różnicowania: - CVS @@ -964,14 +762,6 @@ p, li { white-space: pre-wrap; } Attach to Process ID: Dołącz do procesu o identyfikatorze: - - Filter: - Filtr: - - - Clear - Wyczyść - BreakByFunctionDialog @@ -1061,10 +851,6 @@ p, li { white-space: pre-wrap; } CommonOptionsPage - - User interface - Interfejs użytkownika - Checking this will populate the source file view automatically but might slow down debugger startup considerably. @@ -1075,10 +861,6 @@ p, li { white-space: pre-wrap; } Populate source file view automatically Wypełniaj automatycznie widok pliku źródłowego - - Show a message box when receiving a signal - Pokazuj komunikat po otrzymaniu sygnału - Use alternating row colors in debug views @@ -1089,19 +871,6 @@ p, li { white-space: pre-wrap; } Use tooltips in main editor while debugging Używaj podpowiedzi w głównym edytorze podczas debugowania - - 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. - 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. - - - Skip known frames when stepping - Pomijaj znane kroki - - - Enable reverse debugging - Włącz debugowanie wsteczne - Maximal stack depth: @@ -1127,10 +896,6 @@ p, li { white-space: pre-wrap; } Change debugger language automatically Automatycznie zmieniaj język debuggera - - C++ - C++ - Register Qt Creator for debugging crashed applications. @@ -1149,14 +914,6 @@ p, li { white-space: pre-wrap; } DebuggingHelperOptionPage - - Debugging helper - Asystent debuggera - - - This will enable nice display of Qt and Standard Library objects in the Locals&Watchers view - To włącza bardziej przejrzyste wyświetlanie obiektów Qt i Biblioteki Standardowej w widoku ze zmiennymi lokalnymi i obserwowanymi - Use debugging helper @@ -1199,18 +956,6 @@ p, li { white-space: pre-wrap; } GdbOptionsPage - - Gdb interaction - Interakcje gdb - - - This is either a full absolute path leading to the gdb binary you intend to use or the name of a gdb binary that will be searched in your PATH. - Jest to albo pełna ścieżka do programu gdb którego chcesz użyć albo nazwa programu gdb która będzie odnaleziona w zmiennej PATH. - - - Gdb location: - Położenie gdb: - Environment: @@ -1317,41 +1062,6 @@ czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać Pokazuj komunikat po otrzymaniu sygnału - - Debugger::Internal::TrkOptionsWidget - - Form - Formularz - - - Gdb - Gdb - - - Symbian ARM gdb location: - Położenie gdb Symbian ARM: - - - Communication - Komunikacja - - - Serial Port - Port szeregowy - - - Bluetooth - Bluetooth - - - Port: - Port: - - - Device: - Urządzenie: - - StartExternalDialog @@ -1463,10 +1173,6 @@ czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać Designer::Internal::FormClassWizardPage - - Choose a class name - Podaj nazwę klasy - Class @@ -1495,35 +1201,11 @@ czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać Use FakeVim Używaj FakeVim - - Vim style settings - Ustawienia stylu Vim - - - vim's "expandtab" option - Opcja "expandtab" Vim'a - - - Expand tabulators: - Rozwijaj tabulatory: - - - Highlight search results: - Podświetlaj wyniki poszukiwań: - Shift width: Szerokość przesunięcia: - - Smart tabulators: - Inteligentne tabulatory: - - - Start of line: - Początek wiersza: - vim's "tabstop" option @@ -1539,18 +1221,6 @@ czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać Backspace: Cofnięcie: - - VIM's "autoindent" option - Opcja "autoindent" Vim'a - - - Automatic indentation: - Automatyczne wcięcia: - - - Incremental search: - Wyszukiwanie przyrostowe: - Copy text editor settings @@ -1718,14 +1388,6 @@ czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać Branches Gałęzie - - General information - Ogólne informacje - - - Repository: - Składnica: - Remote branches @@ -1736,14 +1398,6 @@ czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać Checkout - - Delete - Usuń - - - Unable to find the repository directory for '%1'. - Nie można znaleźć katalogu składnicy "%1". - Diff @@ -1858,10 +1512,6 @@ czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać WizardPage StronaKreatora - - Filter: - Filtr: - ... @@ -1890,14 +1540,6 @@ czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać WizardPage StronaKreatora - - Filter: - Filtr: - - - ... - ... - Name @@ -2029,14 +1671,10 @@ czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać Note that huge amount of commits might take some time. - - Prompt to submit - Pytaj przed wysłaniem zmian do serwera - Omit date from annotation output - + Omijaj daty w wyjściowych adnotacjach @@ -2215,10 +1853,6 @@ Add, modify, and remove document filters, which determine the documentation set Show my tabs from last session Pokazuj moje karty z ostatniej sesji - - Home Page: - Strona startowa: - Use &Current Page @@ -2306,35 +1940,11 @@ Add, modify, and remove document filters, which determine the documentation set Perforce::Internal::SettingsPage - - Prompt to submit - Pytaj przed wysłaniem zmian do serwera - - - P4 Command: - Komenda P4: - - - Use default P4 environment variables - Używaj domyślnych zmiennych środowiskowych P4 - Environment variables Zmienne środowiskowe - - P4 Client: - Klient P4: - - - P4 User: - Użytkownik P4: - - - P4 Port: - Port P4: - Test @@ -2421,10 +2031,6 @@ Add, modify, and remove document filters, which determine the documentation set ProjectExplorer::Internal::EditorSettingsPropertiesPage - - Default File Encoding: - Domyślne kodowanie plików: - Default file encoding: @@ -2466,18 +2072,6 @@ Add, modify, and remove document filters, which determine the documentation set Build and Run Budowanie i uruchamianie - - Save all files before Build - Zachowuj wszystkie pliki przed budowaniem - - - Always build Project before Running - Zawsze buduj projekt przed uruchomieniem - - - Show Compiler Output on building - Pokazuj komunikaty kompilatora w trakcie budowania - Use jom instead of nmake @@ -2541,18 +2135,6 @@ Add, modify, and remove document filters, which determine the documentation set Manage Sessions... Zarządzanie sesjami... - - Create New Project... - Utwórz nowy projekt... - - - Open Recent Project - Otwórz ostatnio używany projekt - - - Resume Session - Wznów sesję - %1 (last session) @@ -2568,10 +2150,6 @@ Add, modify, and remove document filters, which determine the documentation set New Project Nowy projekt - - New Project... - Nowy projekt... - Recent Sessions @@ -2608,18 +2186,6 @@ Add, modify, and remove document filters, which determine the documentation set Project management Zarządzanie projektami - - &Add to Project - &Dodaj do projektu - - - &Project - &Projekt - - - Add to &version control - Dodaj do systemu kontroli &wersji - The following files will be added: @@ -2669,10 +2235,6 @@ Add, modify, and remove document filters, which determine the documentation set ProjectExplorer::Internal::RunSettingsPropertiesPage - - Edit run configuration: - Modyfikuj konfigurację uruchamiania: - + @@ -2696,27 +2258,11 @@ Add, modify, and remove document filters, which determine the documentation set Session Manager Zarządzanie sesjami - - Create New Session - Utwórz nową sesję - - - Clone Session - Sklonuj sesję - - - Delete Session - Usuń sesję - <a href="qthelp://com.nokia.qtcreator/doc/creator-quick-tour.html#session-management-in-qt-creator">What is a Session?</a> <a href="qthelp://com.nokia.qtcreator/doc/creator-quick-tour.html#session-management-in-qt-creator">Co to jest sesja?</a> - - Switch to session - Przełącz sesję - &New @@ -2963,21 +2509,6 @@ Add, modify, and remove document filters, which determine the documentation set ... - - EmbeddedPropertiesPage - - Use Virtual Box -Note: This adds the toolchain to the build environment and runs the program inside a virtual machine. -It also automatically sets the correct Qt version. - Użyj Virtual Box -Uwaga: dodaje narzędzia do środowiska kompilacji i uruchamia program w ramach maszyny wirtualnej. -Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. - - - Skin: - Skórka: - - Qt4ProjectManager::Internal::GettingStartedWelcomePageWidget @@ -2985,48 +2516,16 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. Form Formularz - - Examples not installed - Przykłady nie są zainstalowane - - - Open - Otwórz - Tutorials Samouczki - - Explore Qt Examples - Poznaj dogłębnie przykłady Qt - Did You Know? Czy wiesz że? - - <b>Qt Creator - A quick tour</b> - <b>Qt Creator - Krótki przegląd</b> - - - Creating an address book - Tworzenie książki adresowej - - - Understanding widgets - Logika widżetów - - - Building with qmake - Budowanie przy pomocy qmake - - - Writing test cases - Pisanie testów - The Qt Creator User Interface @@ -3122,10 +2621,6 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. Within a session, you can add <a href="qthelp://com.nokia.qtcreator/doc/creator-project-pane.html#dependencies">dependencies</a> between projects. W ramach sesji możesz dodać <a href="qthelp://com.nokia.qtcreator/doc/creator-project-pane.html#dependencies">zależności</a> pomiędzy projektami. - - 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><li></li><li>6 - Output</li></ul> - 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><li></li><li>6 - Komunikaty</li></ul> - You can show and hide the side bar using <tt>%1+0<tt>. @@ -3171,14 +2666,6 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. You can quickly search methods, classes, help and more using the <a href="qthelp://com.nokia.qtcreator/doc/creator-navigation.html">Locator bar</a> (<tt>%1+K</tt>). Używając <a href="qthelp://com.nokia.qtcreator/doc/creator-navigation.html">lokalizatora</a> (<tt>%1+K</tt>) możesz szybko znaleźć metody, klasy, itd. lub przeszukać dokumentację. - - You can add custom build steps in the <a href="qthelp://com.nokia.qtcreator/doc/creator-build-settings.html">build settings</a>. - Możesz dodać własne kroki do procesu budowania w <a href="qthelp://com.nokia.qtcreator/doc/creator-build-settings.html">ustawieniach budowania</a>. - - - Within a session, you can add <a href="qthelp://com.nokia.qtcreator/doc/creator-build-settings.html#dependencies">dependencies</a> between projects. - W ramach sesji możesz dodać <a href="qthelp://com.nokia.qtcreator/doc/creator-build-settings.html#dependencies">zależności</a> pomiędzy projektami. - You can set the preferred editor encoding for every project in <tt>Projects -> Editor Settings -> Default Encoding</tt>. @@ -3194,10 +2681,6 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. In the editor, <tt>F2</tt> follows symbol definition, <tt>Shift+F2</tt> toggles declaration and definition while <tt>F4</tt> toggles header file and source file. Naciśnięcie w edytorze <tt>F2</tt> powoduje skok do definicji symbolu, <tt>Shift+F2</tt> przełącza między deklaracją a definicją, zaś <tt>F4</tt> przełącza między plikiem nagłówkowym a plikiem źródłowym. - - In the editor, <tt>F2</tt> toggles declaration and definition while <tt>F4</tt> toggles header file and source file. - Naciśnięcie w edytorze <tt>F2</tt> przełącza między deklaracją a definicją, zaś <tt>F4</tt> przełącza między plikiem nagłówkowym a plikiem źródłowym. - Examples not installed... @@ -3239,10 +2722,6 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. QMakeStep - - QMake Build Configuration: - Konfiguracja QMake: - debug @@ -3276,18 +2755,6 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. Form Formularz - - Installed S60 SDKs: - Zainstalowane SDK S60: - - - SDK Location - Położenie SDK - - - Qt Location - Położenie Qt - Refresh @@ -3366,14 +2833,6 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. Shadow Build Directory Katalog kompilacji w innym miejscu - - Default Qt Version (%1) - Domyślna wersja Qt (%1) - - - No Qt Version set - Nie ustawiono wersji Qt - using <font color="#ff0000">invalid</font> Qt Version: <b>%1</b><br>%2 @@ -3413,10 +2872,6 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. Qt4ProjectManager::Internal::QtVersionManager - - Qt versions - Wersje Qt - + @@ -3455,61 +2910,21 @@ p, li { white-space: pre-wrap; } Name Nazwa - - QMake Location - Położenie QMake - Debugging Helper Asystent debuggera - - Version Name: - Nazwa wersji: - - - QMake Location: - Położenie QMake: - - - MSVC Version: - Wersja MSVC: - - - Debugging Helper: - Asystent debuggera: - - - Default Qt Version: - Domyślna wersja Qt: - S60 SDK: S60 SDK: - - Carbide Directory: - Katalog Carbide: - - - MinGW Directory: - Katalog MinGW: - - - CSL/GCCE Directory: - Katalog CSL/GCCE: - qmake Location Położenie qmake - - qmake Location: - Położenie qmake: - Toolchain: @@ -3556,14 +2971,6 @@ p, li { white-space: pre-wrap; } Subversion::Internal::SettingsPage - - Prompt to submit - Pytaj przed wysłaniem zmian do serwera - - - Subversion Command: - Komenda Subversion: - Authentication @@ -3828,10 +3235,6 @@ p, li { white-space: pre-wrap; } Highlight &blocks Podświetlaj &bloki - - Mark text changes - Zaznaczaj zmiany w tekście - Show tabs and spaces. @@ -3842,10 +3245,6 @@ p, li { white-space: pre-wrap; } &Visualize whitespace Pokazuj &białe znaki - - Animate matching parentheses - Pokazuj animację pasujących nawiasów - Text Wrapping @@ -3861,14 +3260,6 @@ p, li { white-space: pre-wrap; } Display right &margin at column: Wyświetlaj prawy &margines w kolumnie: - - Navigation - Nawigacja - - - Enable &mouse navigation - Włącz nawigację &myszy - Mark &text changes @@ -3963,21 +3354,6 @@ p, li { white-space: pre-wrap; } Nick Names Przydomki - - Filter: - Filtr: - - - Clear - Wyczyść - - - - VCSBaseSettingsPage - - Common - Ogólne - Welcome::Internal::CommunityWelcomePageWidget @@ -3991,10 +3367,6 @@ p, li { white-space: pre-wrap; } News From the Qt Labs Nowiny z Qt Labs - - Qt Websites - Strony o Qt - <b>Forum Nokia</b><br /><font color='gray'>Mobile Application Support</font> @@ -4030,30 +3402,6 @@ p, li { white-space: pre-wrap; } http://labs.trolltech.com/blogs/feed http://labs.trolltech.com/blogs/feed - - Qt Home - Strona główna Qt - - - Qt Labs - Qt Labs - - - Qt Git Hosting - Składnica Git dla Qt - - - Qt Centre - Qt Centre - - - Qt Apps - Qt Apps - - - Qt for Symbian at Forum Nokia - Qt dla Symbiana na forum Nokii - Qt Support Sites @@ -4067,14 +3415,6 @@ p, li { white-space: pre-wrap; } Welcome::WelcomeMode - - #gradientWidget { - background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(247, 247, 247, 255), stop:1 rgba(215, 215, 215, 255)); -} - #gradientWidget { - background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(247, 247, 247, 255), stop:1 rgba(215, 215, 215, 255)); -} - #headerFrame { @@ -4192,140 +3532,6 @@ p, li { white-space: pre-wrap; } Wybierz temat dla <b>%1</b>: - - Qt4ProjectManager::Internal::ProEditor - - New - Nowy - - - Remove - Usuń - - - Up - W górę - - - Down - W dół - - - Cut - Wytnij - - - Copy - Skopiuj - - - Paste - Wklej - - - Ctrl+X - Ctrl+X - - - Ctrl+C - Ctrl+C - - - Ctrl+V - Ctrl+V - - - Add Variable - Dodaj zmienną - - - Add Scope - Dodaj zakres - - - Add Block - Dodaj blok - - - - Qt4ProjectManager::Internal::ValueEditor - - Edit Variable - Zmodyfikuj zmienną - - - Variable Name: - Nazwa zmiennej: - - - Assignment Operator: - Operator podstawienia: - - - Variable: - Zmienna: - - - Append (+=) - Dodaj (+=) - - - Remove (-=) - Usuń (-=) - - - Replace (~=) - Zastąp (~=) - - - Set (=) - Ustaw (=) - - - Unique (*=) - Dodaj niepowtarzalny (*=) - - - Select Item - Wybierz element - - - Edit Item - Zmodyfikuj element - - - Select Items - Wybierz elementy - - - Edit Items - Zmodyfikuj elementy - - - New - Nowy - - - Remove - Usuń - - - Edit Values - Zmodyfikuj wartości - - - Edit %1 - Zmodyfikuj %1 - - - Edit Scope - Zmodyfikuj zakres - - - Edit Advanced Expression - Zmodyfikuj zaawansowane wyrażenie - - QrcEditor @@ -4755,10 +3961,6 @@ Przyczyna: %3 Utils::DetailsButton - - Show Details - Pokaż szczegóły - Details @@ -4767,22 +3969,6 @@ Przyczyna: %3 Utils::FileNameValidatingLineEdit - - The name must not be empty - Nazwa nie może być pusta - - - The name must not contain any of the characters '%1'. - Nazwa nie może zawierać żadnego ze znaków "%1". - - - The name must not contain '%1'. - Nazwa nie może zawierać "%1". - - - The name must not match that of a MS Windows device. (%1). - Nazwa nie może być taka jak urządzenie MS Windows. (%1). - Name is empty. @@ -4917,10 +4103,6 @@ Przyczyna: %3 Utils::ProjectNameValidatingLineEdit - - The name must not contain the '.'-character. - Nazwa nie może zawierać znaku "." (kropki). - Invalid character '.'. @@ -4986,14 +4168,6 @@ Przyczyna: %3 Remove All Usuń wszystko - - &Remove Bookmark - &Usuń zakładkę - - - Remove all Bookmarks - Usuń wszystkie zakładki - Bookmarks::Internal::BookmarksPlugin @@ -5018,14 +4192,6 @@ Przyczyna: %3 Meta+M Meta+M - - Move Up - Przenieś do góry - - - Move Down - Przenieś na dół - Previous Bookmark @@ -5067,17 +4233,6 @@ Przyczyna: %3 Następna zakładka w dokumencie - - CMakeProjectManager::Internal::CMakeBuildEnvironmentWidget - - Clear system environment - Wyczyść środowisko systemowe - - - Build Environment - Środowisko budowania - - CMakeProjectManager::Internal::CMakeOpenProjectWizard @@ -5203,10 +4358,6 @@ Przyczyna: %3 CMakeProjectManager::Internal::CMakeBuildConfigurationFactory - - Create - Utwórz - Build @@ -5243,10 +4394,6 @@ Przyczyna: %3 Executable: Program: - - CMake executable - Program CMake - CMakeProjectManager::Internal::CMakeRunConfigurationWidget @@ -5295,10 +4442,6 @@ Przyczyna: %3 Build Environment Środowisko budowania - - Running executable: <b>%1</b> %2 - Uruchomiony program: <b>%1</b> %2 - CMakeProjectManager::Internal::MakeStepConfigWidget @@ -5509,19 +4652,11 @@ Czy chcesz je nadpisać? Keyboard Klawisze - - Environment - Środowisko - Keyboard Shortcuts Skróty klawiszowe - - Shortcut: - Skrót: - Key sequence: @@ -5729,10 +4864,6 @@ Czy chcesz je nadpisać? Save %1 &As... Zachowaj %1 j&ako... - - Goto Other Split - Przejdź do kolejnego edytora - %1,o @@ -5764,10 +4895,6 @@ Czy chcesz je nadpisać? Cannot open file %1! Nie można otworzyć pliku %1! - - Open File - Otwórz plik - File is Read Only @@ -5815,10 +4942,6 @@ Czy chcesz je nadpisać? <b>Warning:</b> You are changing a read-only file. <b>Ostrzeżenie:</b> Zmieniasz plik który jest tylko do odczytu. - - Save %1 As... - Zachowaj %1 jako... - &Save %1 @@ -5935,14 +5058,6 @@ Czy chcesz je nadpisać? Core::Internal::EditorView - - Go Back - Wstecz - - - Go Forward - W przód - @@ -5954,18 +5069,6 @@ Czy chcesz je nadpisać? Close Zamknij - - Make writable - Uczyń plik zapisywalnym - - - File is writable - Plik jest zapisywalny - - - Copy full path to clipboard - Skopiuj pełną ścieżkę do schowka - Core::Internal::OpenEditorsWidget @@ -6050,10 +5153,6 @@ Czy chcesz je nadpisać? Qt Creator Qt Creator - - Output - Komunikaty - &File @@ -6089,14 +5188,6 @@ Czy chcesz je nadpisać? &Open File or Project... &Otwórz plik lub projekt... - - &Open File With... - Otwórz plik &przy pomocy... - - - Recent Files - Ostatnie pliki - Open File &With... @@ -6243,11 +5334,6 @@ Czy chcesz je nadpisać? Open Project Otwórz projekt - - New... - Title of dialog - Nowy... - Settings... @@ -6256,10 +5342,6 @@ Czy chcesz je nadpisać? Core::Internal::MessageOutputWindow - - General - Ogólne - General Messages @@ -6268,10 +5350,6 @@ Czy chcesz je nadpisać? Core::ModeManager - - Switch to %1 mode - Przejdź do trybu %1 - Switch to <b>%1</b> mode @@ -6497,10 +5575,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. CodePaster CodePaster - - Code Pasting - Wklejanie kodu - Server: @@ -6549,58 +5623,9 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Empty snippet received for "%1". Otrzymano pusty urywek dla "%1". - - This protocol supports no listing - Ten protokół nie obsługuje listingów - - - Waiting for items - Oczekiwanie na elementy - - - - PasteBinDotComProtocol - - Error during paste - Błąd podczas wklejania - - - - PasteBinDotComSettings - - Pastebin.com - Pastebin.com - - - Code Pasting - Wklejanie kodu - - - - PasteView - - Paste - Wklej - - - <Username> - <Nazwa użytkownika> - - - <Description> - <Opis> - - - <Comment> - <Komentarz> - CppEditor::Internal::ClassNamePage - - Enter class name - Wprowadź nazwę klasy - Enter Class Name @@ -6671,10 +5696,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. CppEditor::Internal::CppPlugin - - C++ - C++ - Creates a C++ header file. @@ -6720,14 +5741,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Creates a header and a source file for a new class. Tworzy plik nagłówkowy i źródłowy dla nowej klasy. - - Follow Symbol under Cursor - Podąż za symbolem pod kursorem - - - Switch between Method Declaration/Definition - Przełącz między deklaracją a definicją metody - Find Usages @@ -6738,10 +5751,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Ctrl+Shift+U Ctrl+Shift+U - - Rename Symbol under Cursor - Zmień nazwę symbolu pod kursorem - Update code model @@ -6755,10 +5764,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Completion Uzupełnianie - - Text Editor - Edytor tekstu - CppTools::Internal::CppClassesFilter @@ -6820,10 +5825,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. CppTools::Internal::CppFindReferences - - Searching... - Przeszukiwanie... - @@ -6859,17 +5860,9 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Parsing Parsowanie - - Indexing - Indeksowanie - CppTools - - File Naming Conventions - Konwencje nazewnictwa plików - File Naming @@ -6960,22 +5953,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Alt+C,Alt+A Alt+C,Alt+A - - Delete - Usuń - - - Delete "%1" - Usuń "%1" - - - Revert - Odwróć zmiany - - - Revert "%1" - Odwróć zmiany w "%1" - Diff Project @@ -7156,10 +6133,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Revert failed: %1 Nie można odwrócić zmian: %1 - - The file '%1' could not be deleted. - Nie można skasować pliku "%1". - The file has been changed. Do you want to revert it? @@ -7395,54 +6368,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Breakpoints Pułapki - - Delete breakpoint - Usuń pułapkę - - - Delete all breakpoints - Usuń wszystkie pułapki - - - Delete breakpoints of "%1" - Usuń pułapki w "%1" - - - Delete breakpoints of file - Usuń pułapki w pliku - - - Adjust column widths to contents - Wyrównaj szerokości kolumn do ich zawartości - - - Always adjust column widths to contents - Zawsze wyrównuj szerokości kolumn do ich zawartości - - - Edit condition... - Zmodyfikuj warunek... - - - Synchronize breakpoints - Zsynchronizuj pułapki - - - Disable breakpoint - Wyłącz pułapkę - - - Enable breakpoint - Włącz pułapkę - - - Use short path - Użyj skróconej ścieżki - - - Use full path - Użyj pełnej ścieżki - Delete Breakpoint @@ -7541,20 +6466,12 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Debugger::Internal::CdbDebugEngine - - Unable to load the debugger engine library '%1': %2 - Nie udało się załadować biblioteki silnika debuggera '%1': %2 - The function "%1()" failed: %2 Function call failed Funkcja "%1()" zakończona niepowodzeniem: %2 - - Unable to resolve '%1' in the debugger engine library '%2' - Nie udało się rozwiązać symbolu '%1' w bibliotece silnika debuggera '%2' - Version: %1 @@ -7585,22 +6502,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Attaching to core files is not supported! Dołączanie się do pliku zrzutu nie jest obsługiwane! - - Debugger running - Debugger uruchomiony - - - Attaching to a process failed for process id %1: %2 - Dołączenie do procesu o identyfikatorze %1 nie powiodło się: %2 - - - Unable to set the image path to %1: %2 - Nie można ustawić ścieżki do obrazu programu na %1: %2 - - - Unable to create a process '%1': %2 - Nie można utworzyć procesu "%1": %2 - The process exited with exit code %1. @@ -7631,10 +6532,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Stepping %1 Kroczenie %1 - - Running to 0x%1... - Uruchamianie do 0x%1... - Running requested... @@ -7721,14 +6618,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Breakpoint: %1 Pułapka: %1 - - Thread %1: Missing debug information for top stack frame (%2). - Wątek %1: Brak informacji debugowej dla wierzchniej ramki stosu (%2). - - - Thread %1: No debug information available (%2). - Wątek %1: Brak dostępnej informacji debugowej (%2). - Debugger::Internal::CdbDumperHelper @@ -7790,10 +6679,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Debugger::Internal::CdbOptionsPageWidget - - Cdb - Cdb - Autodetect @@ -7863,30 +6748,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Debugger::Internal::DebuggerSettings - - Debugger properties... - Właściwości debuggera... - - - Adjust column widths to contents - Wyrównaj szerokości kolumn do ich zawartości - - - Always adjust column widths to contents - Zawsze wyrównuj szerokości kolumn do ich zawartości - - - Use alternating row colors - Używaj alternatywnych kolorów wierszy - - - Show a message box when receiving a signal - Pokazuj komunikat po otrzymaniu sygnału - - - Log time stamps - Notuj w dzienniku czas komunikatów - This switches the debugger to instruction-wise operation mode. In this mode, stepping operates on single instructions and the source location view also shows the disassembled instructions. @@ -7897,38 +6758,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. This switches the Locals&Watchers view to automatically derefence pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. - - Watch expression "%1" - Obserwuj wyrażenie "%1" - - - Remove watch expression "%1" - Usuń obserwowanie wyrażenia "%1" - - - Watch expression "%1" in separate window - Obserwuj wyrażenie "%1" w osobnym oknie - - - Use debugging helper - Używaj asystenta debuggera - - - Debug debugging helper - Debuguj asystenta debuggera - - - Use code model - Używaj modelu kodu - - - Synchronize breakpoints - Zsynchronizuj pułapki - - - Automatically quit debugger - Automatycznie zakańczaj debugger - Debugger Properties... @@ -8134,62 +6963,26 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Changes the debugger language according to the currently opened file. Zmienia język debuggera odpowiednio do zawartości otwartego pliku. - - Use tooltips in locals view when debugging - Używaj podpowiedzi w widoku ze zmiennymi lokalnymi podczas debugowania - Checking this will enable tooltips in the locals view during debugging. Zaznaczenie tej opcji włączy podpowiedzi w widoku ze zmiennymi lokalnymi podczas debugowania. - - Use tooltips in breakpoints view when debugging - Używaj podpowiedzi w widoku z pułapkami podczas debugowania - Checking this will enable tooltips in the breakpoints view during debugging. Zaznaczenie tej opcji włączy podpowiedzi w widoku z pułapkami podczas debugowania. - - Show address data in breakpoints view when debugging - Pokazuj adresy w widoku z pułapkami podczas debugowania - Checking this will show a column with address information in the breakpoint view during debugging. Zaznaczenie tej opcji spowoduje pokazanie kolumny z adresami w widoku z pułapkami podczas debugowania. - - Show address data in stack view when debugging - Pokazuj adresy w widoku stosu podczas debugowania - Checking this will show a column with address information in the stack view during debugging. Zaznaczenie tej opcji spowoduje pokazanie kolumny z adresami w widoku stosu podczas debugowania. - - List source files - Pokaż listę plików - - - Skip known frames - Pomijaj znane kroki - - - Enable reverse debugging - Włącz debugowanie wsteczne - - - Reload full stack - Przeładuj cały stos - - - Execute line - Wykonaj linię - Debugger::Internal::MemoryViewAgent @@ -8208,17 +7001,9 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. The memory contents cannot be shown as no viewer plugin for binary data has been loaded. Zawartość pamięci nie może być pokazana ponieważ żadna wtyczka z przeglądarką dla binarnego edytora nie została załadowana. - - The memory contents cannot be shown as no viewer plugin not the BinEditor plugin could be loaded. - Zawartość pamięci nie może być pokazana ponieważ żadna wtyczka z przeglądarką ani z edytorem binarnym nie została załadowana. - Debugger - - Common - Ogólne - General @@ -8338,10 +7123,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Interrupt Przerwij - - Reset Debugger - Wyzeruj debuggera - Step Over @@ -8400,19 +7181,11 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Reverse Direction Odwrotny kierunek - - Stopped. - Zatrzymano. - Running... Uruchamianie... - - Exited. - Zakończono. - Changing breakpoint state requires either a fully running or fully stopped application. @@ -8506,14 +7279,6 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. DebuggerPane - - Clear contents - Wyczyść zawartość - - - Save contents - Zachowaj zawartość - Clear Contents @@ -8563,10 +7328,6 @@ Czy chcesz ją zakończyć? Close Debugging Session Zakończ sesję debugową - - A debugging session is still in progress. Would you like to terminate it? - Trwa sesja debugowa. Czy chcesz ją zakończyć? - A debugging session is still in progress. Terminating the session in the current state (%1) can leave the target in an inconsistent state. Would you still like to terminate it? @@ -8648,18 +7409,6 @@ Czy chcesz ją zakończyć? Reset Debugger Wyzeruj debuggera - - &Views - &Widoki - - - Locked - Zablokowany - - - Reset to default layout - Przywróć domyślne rozmieszczenie - Threads: @@ -8753,24 +7502,6 @@ Czy chcesz ją zakończyć? Attached to stopped application Dołączono do zatrzymanej aplikacji - - Inferior process could not be stopped: -%1 - Nie można zatrzymać podprocesu: -%1 - - - Inferior started. - Podproces uruchomiony. - - - Inferior running. - Podproces uruchomiony. - - - Attached to stopped inferior. - Dołączono do zatrzymanego podprocesu. - Connecting to remote server failed: @@ -8837,7 +7568,7 @@ Czy chcesz ją zakończyć? The Gdb process crashed some time after starting successfully. - Proces gdb zakończony błędem po poprawnym uruchomieniu. + Proces Gdb zakończony błędem po poprawnym uruchomieniu. @@ -8847,47 +7578,23 @@ Czy chcesz ją zakończyć? An error occurred when attempting to write to the Gdb process. For example, the process may not be running, or it may have closed its input channel. - Wystąpił błąd podczas próby pisania do procesu gdb. Być może proces nie jest uruchomiony lub zamknął on swój kanał wejściowy. + Wystąpił błąd podczas próby pisania do procesu Gdb. Być może proces nie jest uruchomiony lub zamknął on swój kanał wejściowy. An error occurred when attempting to read from the Gdb process. For example, the process may not be running. - Wystąpił błąd podczas próby czytania z procesu gdb. Być może proces nie jest uruchomiony. + Wystąpił błąd podczas próby czytania z procesu Gdb. Być może proces nie jest uruchomiony. An unknown error in the Gdb process occurred. - Wystąpił nieznany błąd w procesie gdb. - - - Library %1 loaded. - Załadowano bibliotekę %1. - - - Library %1 unloaded. - Wyładowano bibliotekę %1. + Wystąpił nieznany błąd w procesie Gdb. Thread group %1 created. Utworzono grupę wątków %1. - - Thread %1 created. - Utworzono wątek %1. - - - Thread group %1 exited. - Zakończono grupę wątków %1. - - - Thread %1 in group %2 exited. - Zakończono wątek %1 w grupie %2. - - - Thread %1 selected. - Wybrano wątek %1. - Reading %1... @@ -8931,18 +7638,6 @@ Czy chcesz ją zakończyć? Jumped. Stopped. Przeskoczono, Zatrzymano. - - Program exited with exit code %1. - Program zakończył się kodem wyjściowym %1. - - - Program exited after receiving signal %1. - Program zakończył się po otrzymaniu sygnału %1. - - - Program exited normally. - Program zakończony prawidłowo. - Processing queued commands. @@ -8953,10 +7648,6 @@ Czy chcesz ją zakończyć? Loading %1... Ładowanie %1... - - Stopped at breakpoint. - Zatrzymano w pułapce. - <p>The inferior stopped because it received a signal from the Operating System.<p><table><tr><td>Signal name : </td><td>%1</td></tr><tr><td>Signal meaning : </td><td>%2</td></tr></table> @@ -8983,14 +7674,6 @@ Czy chcesz ją zakończyć? The debugger you are using identifies itself as: Debugger którego używasz identyfikuje się jako: - - This version is not officially supported by Qt Creator. -Debugging will most likely not work well. -Using gdb 6.7 or later is strongly recommended. - Qt Creator oficjalnie nie obsługuje tej wersji. -Debugowanie najprawdopodobniej nie będzie działało poprawnie. -Zaleca się użycie gdb wersji 6.7 lub późniejszej. - Continuing after temporary stop... @@ -9014,7 +7697,7 @@ Zaleca się użycie gdb wersji 6.7 lub późniejszej. Finish function requested... - + Zażądano zakończenia funkcji... @@ -9056,10 +7739,6 @@ Zaleca się użycie gdb wersji 6.7 lub późniejszej. Pobieranie danych dla widoku ze zmiennymi obserwowanymi (%n oczekujących żądań)... - - Finished retrieving data. - Zakończono pobieranie danych. - Dumper version %1, %n custom dumpers found. @@ -9070,7 +7749,7 @@ Zaleca się użycie gdb wersji 6.7 lub późniejszej. Debugging helpers not found. - + Brak asystentów debuggera. @@ -9129,7 +7808,7 @@ Zaleca się użycie gdb wersji 6.7 lub późniejszej. Gdb I/O Error - Błąd wejścia / wyjścia gdb + Błąd wejścia / wyjścia Gdb @@ -9230,7 +7909,8 @@ Czy chcesz zakończyć debugowany proces i załadować wybrany zrzut? The gdb process has not responded to a command within %1 seconds. This could mean it is stuck in an endless loop or taking longer than expected to perform the operation. You can choose between waiting longer or abort debugging. - + Proces gdb nie odpowiedział na komendę po upływie %1 sekund. Może to oznaczać że utknął on w nieskończonej pętli lub możliwość odpowiedzenia zajmuje mu więcej czasu niż się spodziewano. +Możesz poczekać dłużej na odpowiedź lub przerwać debugowanie. @@ -9240,7 +7920,7 @@ You can choose between waiting longer or abort debugging. Give gdb more time - + Poczekaj dłużej na gdb @@ -9382,14 +8062,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Starting inferior... Uruchamianie podprocesu... - - Inferior start failed - Nie można uruchomić podprocesu - - - Inferior shutdown failed - Nie można zakończyć podprocesu - Adapter crashed @@ -9403,10 +8075,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Gdb Gdb - - Choose Gdb Location - Wybierz położenie gdb - Choose Location of Startup Script File @@ -9465,10 +8133,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Error Błąd - - Adapter too old: does not support asynchronous mode. - Zbyt stary adapter: nie obsługuje on trybu asynchronicznego. - Starting remote executable failed: @@ -9500,30 +8164,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Nie można połączyć się z adapterem serwera TRK: - - Connecting to trk server adapter failed: - - Nie można połączyć się z adapterem serwera trk: - - - - - TrkOptions - - No Symbian gdb executable specified. - Nie podano programu gdb dla Symbian. - - - The Symbian gdb executable '%1' could not be found in the search path. - Nie znaleziono programu gdb "%1" dla Symbian w ścieżce. - - - - Debugger::Internal::TrkOptionsPage - - Symbian TRK - Symbian TRK - Debugger::Internal::ModulesModel @@ -9555,50 +8195,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Modules Moduły - - Update module list - Odśwież listę modułów - - - Show source files for module "%1" - Pokaż źródłowe pliki modułu "%1" - - - Load symbols for all modules - Załaduj symbole ze wszystkich modułów - - - Load symbols for module - Załaduj symbole z modułu - - - Edit file - Zmodyfikuj plik - - - Show symbols - Pokaż symbole - - - Load symbols for module "%1" - Załaduj symbole z modułu "%1" - - - Edit file "%1" - Zmodyfikuj plik "%1" - - - Show symbols in file "%1" - Pokaż symbole z pliku "%1" - - - Adjust column widths to contents - Wyrównaj szerokości kolumn do ich zawartości - - - Always adjust column widths to contents - Zawsze wyrównuj szerokości kolumn do ich zawartości - Update Module List @@ -9897,18 +8493,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Registers Rejestry - - Reload register listing - Przeładuj listę rejestrów - - - Open memory editor - Otwórz edytor pamięci - - - Open memory editor at %1 - Otwórz edytor pamięci z adresem %1 - Reload Register Listing @@ -9954,14 +8538,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Always Adjust Column Widths to Contents Zawsze wyrównuj szerokości kolumn do ich zawartości - - Adjust column widths to contents - Wyrównaj szerokości kolumn do ich zawartości - - - Always adjust column widths to contents - Zawsze wyrównuj szerokości kolumn do ich zawartości - Debugger::Internal::ScriptEngine @@ -10031,18 +8607,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Open File "%1"' Otwórz plik "%1" - - Reload data - Przeładuj dane - - - Open file - Otwórz plik - - - Open file "%1"' - Otwórz plik "%1" - Debugger::Internal::StackHandler @@ -10203,34 +8767,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Always Adjust Column Widths to Contents Zawsze wyrównuj szerokości kolumn do ich zawartości - - Copy contents to clipboard - Skopiuj zawartość do schowka - - - Open memory editor - Otwórz edytor pamięci - - - Open memory editor at %1 - Otwórz edytor pamięci z adresem %1 - - - Open disassembler - Otwórz deasembler - - - Open disassembler at %1 - Otwórz deasembler w %1 - - - Adjust column widths to contents - Wyrównaj szerokości kolumn do ich zawartości - - - Always adjust column widths to contents - Zawsze wyrównuj szerokości kolumn do ich zawartości - Debugger::Internal::ThreadsWindow @@ -10249,14 +8785,6 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Always Adjust Column Widths to Contents Zawsze wyrównuj szerokości kolumn do ich zawartości - - Adjust column widths to contents - Wyrównaj szerokości kolumn do ich zawartości - - - Always adjust column widths to contents - Zawsze wyrównuj szerokości kolumn do ich zawartości - Debugger::Internal::WatchData @@ -10495,55 +9023,11 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Always Adjust Column Widths to Contents Zawsze wyrównuj szerokości kolumn do ich zawartości - - Change format for type '%1' - Zmień format typu "%1" - - - Change format for expression '%1' - Zmień format wyrażenia "%1" - Clear Wyczyść - - Change format for type - Zmień format typu - - - Change format for expression - Zmień format wyrażenia - - - Insert new watch item - Wprowadź element do obserwacji - - - Select widget to watch - Wybierz widżet do obserwacji - - - Open memory editor... - Otwórz edytor pamięci... - - - Open memory editor at %1 - Otwórz edytor pamięci z adresem %1 - - - Refresh code model snapshot - Odśwież kopię modelu danych - - - Adjust column widths to contents - Wyrównaj szerokości kolumn do ich zawartości - - - Always adjust column widths to contents - Zawsze wyrównuj szerokości kolumn do ich zawartości - Designer::Internal::FormClassWizardDialog @@ -10617,10 +9101,6 @@ Spróbuj ponownie przebudować projekt. Designer::Internal::FormEditorPlugin - - Qt - Qt - Qt Designer Form @@ -10661,20 +9141,12 @@ Spróbuj ponownie przebudować projekt. Property Editor Edytor właściwości - - Signals & Slots Editor - Edytor sygnałów / slotów - Action Editor Edytor akcji - - For&m editor - Edytor for&mularzy - Edit widgets @@ -10745,10 +9217,6 @@ Spróbuj ponownie przebudować projekt. Ctrl+J Ctrl+J - - Views - Widoki - @@ -10760,14 +9228,6 @@ Spróbuj ponownie przebudować projekt. Widget box Panel widżetów - - Locked - Zablokowany - - - Reset to Default Layout - Przywróć domyślne rozmieszczenie - For&m Editor @@ -10801,10 +9261,6 @@ Spróbuj ponownie przebudować projekt. Designer::Internal::FormTemplateWizardPage - - Choose a form template - Wybierz szablon formularza - Choose a Form Template @@ -10887,10 +9343,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. FakeVim::Internal - - Toggle vim-style editing - Edycja w stylu vim - Use vim-style editing @@ -11062,27 +9514,8 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Informacje o FakeVim - - Find::Internal::FindPlugin - - &Find/Replace - Z&najdź / zastąp - - - Find... - Znajdź... - - - Ctrl+Shift+F - Ctrl+Shift+F - - Find::Internal::FindToolBar - - Current Document - Bieżący dokument - Find/Replace @@ -11196,19 +9629,8 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. <b>Make:</b> %1 %2 - - GenericProject - - <new> - <nowy> - - GenericProjectManager::Internal::GenericBuildConfigurationFactory - - Create - Utwórz - Build @@ -11250,14 +9672,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. GenericProjectManager::Internal::GenericProjectWizardDialog - - Import of Makefile-based Project - Zaimportuj projekt bazujący na pliku Makefile - - - Generic Project - Ogólny projekt - Import Existing Project @@ -11283,17 +9697,9 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Location Położenie - - Second Page Title - Tytuł drugiej strony - GenericProjectManager::Internal::GenericProjectWizard - - Import of Makefile-based Project - Zaimportuj projekt bazujący na pliku Makefile - Import Existing Project @@ -11304,14 +9710,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Creates a generic project, supporting any build system. Tworzy ogólny projekt obsługujący dowolny system budowania. - - Projects - Projekty - - - The project %1 could not be opened. - Nie można otworzyć projektu %1. - Git::Internal::LocalBranchModel @@ -11387,10 +9785,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Note that the git plugin for QtCreator is not able to interact with the server so far. Thus, manual ssh-identification etc. will not work. - - Unable to determine the repository for %1. - Nie można określić składnicy dla %1. - Unable to parse the file output. @@ -11592,14 +9986,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Unable stash in %1: %2 - - Unable to run branch command: %1: %2 - Nie można uruchomić komendy "branch": %1: %2 - - - Unable to run show: %1: %2 - Nie można uruchomić komendy "show": %1: %2 - Changes @@ -11772,18 +10158,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Alt+G,Alt+D Alt+G,Alt+D - - File Status - Pokaż stan pliku - - - Status Related to "%1" - Pokaż stan związany z "%1" - - - Alt+G,Alt+S - Alt+G,Alt+S - Log File @@ -11864,14 +10238,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Diff Project "%1" Pokaż różnice w projekcie "%1" - - Project Status - Pokaż stan projektu - - - Status Project "%1" - Pokaż stan projektu "%1" - Log Project @@ -11887,10 +10253,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Alt+G,Alt+K Alt+G,Alt+K - - Undo Project Changes - Cofnij zmiany w projekcie - Stash @@ -12082,19 +10444,11 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. &Redo &Przywróć - - Could not find working directory - Nie można odnaleźć katalogu roboczego - Revert Odwróć zmiany - - Would you like to revert all pending changes to the project? - Czy chcesz odwrócić wszystkie oczekujące zmiany w projekcie? - Another submit is currently being executed. @@ -12185,35 +10539,11 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Help::Internal::CentralWidget - - Add new page - Dodaj nową stronę - Print Document Wydruk dokumentu - - unknown - nieznany - - - Add New Page - Dodaj nową stronę - - - Close This Page - Zamknij tą stronę - - - Close Other Pages - Zamknij pozostałe strony - - - Add Bookmark for this Page... - Dodaj zakładkę do tej strony... - Help::Internal::DocSettingsPage @@ -12222,10 +10552,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Documentation Dokumentacja - - Help - Pomoc - Add Documentation @@ -12236,14 +10562,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Qt Help Files (*.qch) Pliki pomocy Qt (*.qch) - - The file %1 is not a valid Qt Help file! - Plik %1 nie jest poprawnym plikiem pomocy Qt! - - - Cannot unregister documentation file %1! - Nie można wyrejestrować pliku dokumentacji %1! - Help::Internal::FilterSettingsPage @@ -12252,10 +10570,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Filters Filtry - - Help - Pomoc - Help::Internal::GeneralSettingsPage @@ -12264,10 +10578,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. General settings Ustawienia ogólne - - Help - Pomoc - Open Image @@ -12365,10 +10675,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Activate Contents in Help mode Uaktywnij zawartość w trybie pomocy - - Activate Search in Help mode - Uaktywnij wyszukiwanie w trybie pomocy - Increase Font Size @@ -12467,22 +10773,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Help::Internal::SearchWidget - - &Copy - S&kopiuj - - - Copy &Link Location - Skopiuj &adres odsyłacza - - - Open Link in New Tab - Otwórz odsyłacz w nowej karcie - - - Select All - Zaznacz wszystko - Indexing @@ -12579,14 +10869,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Add File Dodaj plik - - Delete - Usuń - - - Delete "%1" - Usuń "%1" - Delete File @@ -12668,10 +10950,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Pending Changes... Oczekujące zmiany... - - Update Current Project/Session - Odśwież bieżący projekt / sesję - Update Project "%1" @@ -12944,14 +11222,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Cannot open temporary file. Nie można otworzyć tymczasowego pliku. - - Cannot execute p4 submit. - Nie można uruchomić "p4 submit". - - - p4 submit failed (exit code %1). - "p4 submit" zakończone niepowodzeniem (kod wyjściowy %1). - Pending change @@ -12962,37 +11232,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Could not submit the change, because your workspace was out of date. Created a pending submit instead. - - Invalid configuration: %1 - Niepoprawna konfiguracja: %1 - - - - Perforce::Internal - - No executable specified - Nie podano programu do uruchomienia - - - Unable to launch "%1": %2 - Nie można uruchomić "%1": %2 - - - "%1" timed out after %2ms. - "%1" bez odpowiedzi po %2ms. - - - "%1" crashed. - Wystąpił błąd w "%1" - proces zakończony. - - - "%1" terminated with exit code %2: %3 - "%1" zakończone kodem wyjściowym %2: %3 - - - The client does not seem to contain any mapped files. - Wygląda na to, że klient nie ma żadnych zmapowanych plików. - Perforce::Internal::PerforceSubmitEditor @@ -13019,31 +11258,9 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Test succeeded (%1). Test pomyślnie zakończony (%1). - - Test succeeded. - Test pomyślnie zakończony. - ProjectExplorer::AbstractProcessStep - - <font color="#0000ff">Starting: %1 %2</font> - - <font color="#0000ff">Uruchamianie: %1 %2</font> - - - - <font color="#0000ff">Exited with code %1.</font> - <font color="#0000ff">Zakończono kodem wyjściowym %1.</font> - - - <font color="#ff0000"><b>Exited with code %1.</b></font> - <font color="#ff0000"><b>Zakończono kodem wyjściowym %1.</b></font> - - - <font color="#ff0000">Could not start process %1 </b></font> - <font color="#ff0000">Nie można uruchomić procesu %1 </b></font> - <font color="#0000ff">Starting: "%1" %2</font> @@ -13134,14 +11351,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. ProjectExplorer::BuildManager - - Finished %n of %1 build steps - - Zakończono %n krok budowania (wszystkich kroków: %1) - Zakończono %n kroki budowania (wszystkich kroków: %1) - Zakończono %n kroków budowania (wszystkich kroków: %1) - - Finished %1 of %n build steps @@ -13184,33 +11393,18 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Error while building project %1 (target: %2) Błąd podczas budowania projektu %1 (produkt docelowy: %2) - - <font color="#ff0000">Error while building project %1</font> - <font color="#ff0000">Błąd podczas budowania projektu %1</font> - <font color="#ff0000">When executing build step '%1'</font> <font color="#ff0000">Podczas wykonywania kroku budowania "%1"</font> - - Error while building project %1 - Błąd podczas budowania projektu %1 - <b>Running build steps for project %2...</b> <b>Uruchamianie kroków budowania dla projektu %2...</b> - - ProjectExplorer::Internal::BuildSettingsPanel - - Build Settings - Ustawienia budowania - - ProjectExplorer::Internal::BuildSettingsWidget @@ -13248,10 +11442,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Clean Steps Kroki procesu czyszczenia - - <a href="#">Make %1 active.</a> - <a href="#">Uaktywnij %1.</a> - Clone configuration @@ -13305,14 +11495,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Add build step Dodaj krok do procesu budowania - - Remove clean step - Usuń krok z procesu czyszczenia - - - Remove build step - Usuń krok z procesu budowania - Clean Steps @@ -13560,35 +11742,6 @@ Powód: %2 Utworzyłoby to cykliczną zależność. - - ProjectExplorer::Internal::DependenciesWidget - - %1 has no dependencies. - %1 nie ma zależności. - - - %1 depends on %2. - %1 zależy od %2. - - - %1 depends on: %2. - %1 zależy od: %2. - - - - ProjectExplorer::Internal::DependenciesPanel - - Dependencies - Zależności - - - - ProjectExplorer::Internal::EditorSettingsPanel - - Editor Settings - Ustawienia edytora - - ProjectExplorer::EnvironmentModel @@ -13623,10 +11776,6 @@ Powód: %2 <VARIABLE> <ZMIENNA> - - <VALUE> - <WARTOŚĆ> - ProjectExplorer::EnvironmentWidget @@ -13670,10 +11819,6 @@ Powód: %2 Using <b>%1</b> and Używając <b>%1</b> i - - Summary: No changes to Environment - Podsumowanie: brak zmian w środowisku - ProjectExplorer::Internal::FolderNavigationWidgetFactory @@ -13716,19 +11861,11 @@ Powód: %2 Force Quit Zakończ - - Ctrl+Shift+R - Ctrl+Shift+R - Application Output Komunikaty aplikacji - - The application is still running. Close it first. - Aplikacja jest wciąż uruchomiona. Najpierw ją zamknij. - Unable to close @@ -13759,10 +11896,6 @@ Powód: %2 ProjectExplorer::Internal::ProcessStep - - Custom Process Step - Własny krok procesu - @@ -13841,22 +11974,6 @@ Powód: %2 Open File Otwórz plik - - Show in Explorer... - Pokaż w "Explorer"... - - - Show in Finder... - Pokaż w "Finder"... - - - Show containing folder... - Pokaż zawierający katalog... - - - Recent Projects - Ostatnie projekty - Close Project @@ -13877,10 +11994,6 @@ Powód: %2 Session Sesja - - Set Build Configuration - Ustaw konfigurację budowania - Build All @@ -13968,10 +12081,6 @@ Powód: %2 Ctrl+R Ctrl+R - - Set Run Configuration - Ustaw konfigurację uruchamiania - Recent P&rojects @@ -14098,22 +12207,6 @@ do systemu kontroli wersji (%2)? Add files to version control failed Nie można dodać plików do systemu kontroli wersji - - Launching Windows Explorer failed - Nie można uruchomić "Windows Explorer" - - - Could not find explorer.exe in path to launch Windows Explorer. - Nie można odnaleźć explorer.exe w ścieżce w celu uruchomienia "Windows Explorer". - - - Launching a file explorer failed - Uruchomienie przeglądarki plików zakończone niepowodzeniem - - - Could not find xdg-open to launch the native file explorer. - Nie można znaleźć programu xdg-open potrzebnego do uruchomienia natywnej przeglądarki plików. - Remove file failed @@ -14162,10 +12255,6 @@ do systemu kontroli wersji (%2)? This can happen if the active build configuration uses the wrong Qt version and/or tool chain for the active run configuration (for example, running in Symbian emulator requires building with the WINSCW tool chain). To się może zdarzyć gdy aktywna konfiguracja budowania używa innej wersji Qt lub innego zestawu narzędzi od tych użytych w aktywnej konfiguracji uruchamiania (np. uruchamianie w symulatorze Symbiana wymaga zbudowania z zestawem narzędzi WINSCW). - - Run configuration doesn't match build configuration - Konfiguracja uruchamiania nie pasuje do konfiguracji budowania - The active build configuration builds a target that cannot be used by the active run configuration. @@ -14189,14 +12278,6 @@ do systemu kontroli wersji (%2)? ProjectExplorer::Internal::ProjectExplorerSettingsPage - - Build and Run - Zbuduj i uruchom - - - Projects - Projekty - General @@ -14232,21 +12313,6 @@ No project selected Dodanie "%1" do systemu kontroli wersji zakończone niepowodzeniem. - - ProjectExplorer::Internal::DetailedModel - - %1 of project %2 - Katalog %1 projektu %2 - - - Could not rename file - Nie można zmienić nazwy pliku - - - Renaming file %1 to %2 failed. - Zmiana nazwy pliku z %1 na %2 zakończona błędem. - - ProjectExplorer::Internal::ProjectTreeWidget @@ -14286,48 +12352,8 @@ No project selected - - ProjectExplorer::Internal::ActiveConfigurationWidget - - Active run configuration - Aktywna konfiguracja uruchamiania - - - - ProjectExplorer::Internal::ProjectLabel - - Edit Project Settings for Project <b>%1</b> - Zmodyfikuj ustawienia projektu <b>%1</b> - - - No Project loaded - Brak załadowanego projektu - - - - ProjectExplorer::Internal::ProjectPushButton - - Select Project - Wybierz projekt - - - - ProjectExplorer::Internal::ProjectWindow - - Active Build and Run Configurations - Aktywne konfiguracje budowania i uruchamiania - - - No project loaded. - Brak załadowanego projektu. - - ProjectExplorer::Internal::ProjectWizardPage - - Add to &VCS (%1) - Dodaj do &VCS (%1) - Summary @@ -14344,13 +12370,6 @@ No project selected Pliki które mają zostać dodane w - - ProjectExplorer::Internal::RunSettingsPanel - - Run Settings - Ustawienia uruchamiania - - ProjectExplorer::Internal::RunSettingsWidget @@ -14363,10 +12382,6 @@ No project selected Remove Usuń - - <a href="#">Make %1 active.</a> - <a href="#">Uaktywnij %1.</a> - ProjectExplorer::Internal::SessionFile @@ -14421,32 +12436,6 @@ No project selected Sesja ("%1") - - ProjectExplorer::Internal::NewSessionInputDialog - - New session name - Nazwa nowej sesji - - - Enter the name of the new session: - Wprowadź nazwę nowej sesji: - - - - ProjectExplorer::Internal::TaskWindow - - Build Issues - Problemy podczas budowania - - - &Copy - S&kopiuj - - - Show Warnings - Pokazuj ostrzeżenia - - ProjectExplorer::Internal::TaskDelegate @@ -14541,144 +12530,12 @@ No project selected Nie można pobrać komunikatów debuggera! - - QmlEditor::Internal::ScriptEditor - - <Select Symbol> - <Wybierz symbol> - - - Rename... - Zmień nazwę... - - - New id: - Nowy identyfikator: - - - Rename id '%1'... - Zmień nazwę identyfikatora "%1"... - - - - QmlEditor::Internal::QmlEditorPlugin - - Qt - Qt - - - Creates a Qt QML file. - Tworzy plik QML Qt. - - - Qt QML File - Plik QML Qt - - - - QmlEditor::Internal::QmlModelManager - - Indexing - Indeksowanie - - - - QmlProjectManager::Internal::QmlMakeStepConfigWidget - - <b>QML Make</b> - <b>QML Make</b> - - - - QmlProjectManager::Internal::QmlNewProjectWizardDialog - - New QML Project - Nowy QML projekt - - - This wizard generates a QML application project. - Ten kreator generuje projekt aplikacji QML. - - - - QmlProjectManager::Internal::QmlNewProjectWizard - - QML Application - Aplikacja QML - - - Creates a QML application. - Tworzy aplikację QML. - - - Projects - Projekty - - - The project %1 could not be opened. - Nie można otworzyć projektu %1. - - QmlProjectManager::Internal::QmlRunConfiguration - - QML Viewer - Przeglądarka QML - - - <Current File> - <Bieżący plik> - - - QML Viewer arguments: - Argumenty przeglądarki QML: - - - Main QML File: - Główny plik QML: - QML Runtime - - - - - QmlProjectManager::Internal::QmlProjectWizardDialog - - Import of QML Project - Importowanie projektu QML - - - QML Project - Projekt QML - - - Project name: - Nazwa projektu: - - - Location: - Położenie: - - - - QmlProjectManager::Internal::QmlProjectWizard - - Import of existing QML directory - Import istniejącego katalogu QML - - - Creates a QML project from an existing directory of QML files. - Tworzy projekt QML na podstawie istniejącego katalogu z plikami QML. - - - Projects - Projekty - - - The project %1 could not be opened. - Nie można otworzyć projektu %1. + Uruchamianie QML @@ -14701,14 +12558,6 @@ No project selected Qt4ProjectManager::Internal::CustomWidgetWizard - - Qt4 Designer Custom Widget - Własny widżet Qt4 Designer - - - Creates a Qt4 Designer Custom Widget or a Custom Widget Collection. - Tworzy własny widżet Qt4 Designer lub kolekcję własnych widżetów. - Qt Custom Designer Widget @@ -14803,10 +12652,6 @@ No project selected <font color="#ff0000">Could not find make command: %1 in the build environment</font> <font color="#ff0000">Nie można odnaleźć komendy make: %1 w środowisku procesu budowania</font> - - <font color="#0000ff"><b>No Makefile found, assuming project is clean.</b></font> - <font color="#0000ff"><b>Nie odnaleziono pliku Makefile. Przyjęto, że projekt jest czysty.</b></font> - Qt4ProjectManager::MakeStepConfigWidget @@ -14820,10 +12665,6 @@ No project selected <b>Make:</b> %1 not found in the environment. <b>Make:</b> Nie odnaleziono %1 w środowisku. - - <b>Make Step:</b> %1 not found in the environment. - <b>Krok Make:</b> Nie odnaleziono %1 w środowisku. - <b>Make:</b> %1 %2 in %3 @@ -14840,22 +12681,6 @@ No project selected Qt4ProjectManager::Internal::ProjectLoadWizard - - Import existing build settings - Zaimportuj istniejące ustawienia procesu budowania - - - Qt Creator has found an already existing build in the source directory.<br><br><b>Qt Version:</b> %1<br><b>Build configuration:</b> %2<br><b>Additional QMake Arguments:</b>%3 - Qt Creator odnalazł istniejącą wersję zbudowaną w katalogu ze źródłami.<br><br><b>Wersja Qt:</b> %1<br><b>Konfiguracja wersji:</b> %2<br><b>Dodatkowe argumenty QMake:</b>%3 - - - Import existing build settings. - Zaimportuj istniejące ustawienia procesu budowania. - - - <b>Note:</b> Importing the settings will automatically add the Qt Version identified by <br><b>%1</b> to the list of Qt versions. - <b>Uwaga:</b> Zaimportowanie ustawień doda automatycznie wersję Qt identyfikowaną przez <br><b>%1</b> do listy wersji Qt. - Project setup @@ -14864,26 +12689,6 @@ No project selected Qt4ProjectManager::QMakeStep - - -<font color="#ff0000"><b>No valid Qt version set. Set one in Preferences </b></font> - - -<font color="#ff0000"><b>Nie ustawiono poprawnej wersji Qt. Popraw to w "Ustawieniach" </b></font> - - - - -<font color="#ff0000"><b>No valid Qt version set. Set one in Tools/Options </b></font> - - -<font color="#ff0000"><b>Nie ustawiono poprawnej wersji Qt. Popraw to w "Narzędziach | Opcje" </b></font> - - - - <font color="#0000ff">Configuration unchanged, skipping QMake step.</font> - <font color="#0000ff">Konfiguracja nie została zmieniona, opuszczono krok QMake.</font> - qmake @@ -14903,18 +12708,6 @@ No project selected Qt4ProjectManager::QMakeStepConfigWidget - - <b>QMake:</b> No Qt version set. QMake can not be run. - <b>QMake:</b> Brak ustawionej wersji Qt. Nie można uruchomić QMake. - - - <b>QMake:</b> %1 %2 - <b>QMake:</b> %1 %2 - - - No valid Qt version set. - Nie ustawiono poprawnej wersji Qt. - <b>qmake:</b> No Qt version set. Cannot run qmake. @@ -14928,10 +12721,6 @@ No project selected Qt4ProjectManager::Internal::QMakeStepFactory - - QMake - QMake - qmake @@ -14950,10 +12739,6 @@ No project selected QtS60DeviceRunConfiguration Konfiguracja uruchamiania urządzenia QtS60 - - Could not parse %1. The QtS60 Device run configuration %2 can not be started. - Nie można przetworzyć %1. Konfiguracja urządzenia QtS60 %2 nie może zostać uruchomiona. - Qt4ProjectManager::Internal::S60DeviceRunConfigurationWidget @@ -14987,43 +12772,6 @@ No project selected Queries the device for information Zapytaj urządzenie o informacje - - Self-signed certificate - Własnoręcznie podpisany certyfikat - - - Choose certificate file (.cer) - Wybierz certyfikat (.cer) - - - Custom certificate: - Własny certyfikat: - - - Choose key file (.key / .pem) - Wybierz plik z kluczem (.key / .pem) - - - Key file: - Plik z kluczem: - - - <No Device> - Summary text of S60 device run configuration - <Brak urządzenia> - - - (custom certificate) - (własny certyfikat) - - - (self-signed certificate) - (własnoręcznie podpisany certyfikat) - - - Summary: Run on '%1' %2 - Podsumowanie: Uruchomiono na "%1" %2 - Connecting... @@ -15045,10 +12793,6 @@ No project selected There is no device plugged in. Brak podłączonego urządzenia. - - Creating %1.sisx ... - Tworzenie %1.sisx ... - Executable file: %1 @@ -15059,34 +12803,12 @@ No project selected Debugger for Symbian Platform Debugger dla platformy Symbian - - %1 %2 - %1 %2 - - - Could not read template package file '%1' - Nie można odczytać pliku z pakietem szablonów "%1" - - - Could not write package file '%1' - Nie można zapisać pliku z pakietem "%1" - - - An error occurred while creating the package. - Wystąpił błąd podczas tworzenia pakietu. - Package: %1 Deploying application to '%2'... Pakiet: %1 Umieszczanie aplikacji w "%2"... - - - Could not connect to phone on port '%1': %2 -Check if the phone is connected and the TRK application is running. - Nie można nawiązać połączenia z telefonem na porcie "%1": %2 -Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. @@ -15160,10 +12882,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.The device '%1' has been disconnected Urządzenie "%1" zostało odłączone - - %1% copied. - Skopiowano %1%. - Installing application... @@ -15189,18 +12907,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Canceled. Anulowano. - - Failed to start %1. - Nie można uruchomić %1. - - - %1 has unexpectedly finished. - %1 niespodziewanie zakończył się. - - - An error has occurred while running %1. - Błąd podczas wykonywania %1. - Qt4ProjectManager::Internal::S60DeviceRunControl @@ -15243,13 +12949,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Zakończono debugowanie. - - Qt4ProjectManager::Internal::S60DevicesWidget - - No Qt installed - Brak zainstalowanego Qt - - Qt4ProjectManager::Internal::S60EmulatorRunConfiguration @@ -15262,14 +12961,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Qt Symbian Emulator RunConfiguration Konfiguracja uruchamiania emulatora Qt Symbian - - QtSymbianEmulatorRunConfiguration - Konfiguracja uruchamiania emulatora Qt Symbian - - - Could not parse %1. The Qt for Symbian emulator run configuration %2 can not be started. - Nie można przetworzyć %1. Nie można uruchomić konfiguracji %2 emulatora Qt dla Symbiana. - Qt4ProjectManager::Internal::S60EmulatorRunConfigurationWidget @@ -15283,10 +12974,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Executable: Program: - - Summary: Run %1 in emulator - Podsumowanie: Uruchomiono %1 w emulatorze - Qt4ProjectManager::Internal::S60EmulatorRunConfigurationFactory @@ -15332,17 +13019,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Zdebuguj na urządzeniu - - Qt4ProjectManager::Internal::Qt4BuildEnvironmentWidget - - Clear system environment - Wyczyść środowisko systemowe - - - Build Environment - Środowisko budowania - - Qt4ProjectManager::Internal::Qt4PriFileNode @@ -15396,14 +13072,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Error while reading PRO file %1: %2 Błąd podczas czytania pliku PRO %1: %2 - - Error while parsing file %1. Giving up. - Błąd podczas przetwarzania pliku %1. Przetwarzanie przerwane. - - - Error while changing pro file %1. - Błąd podczas modyfikowania pliku pro %1. - Qt4ProjectManager::Internal::Qt4ProFileNode @@ -15419,61 +13087,18 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Nie można odnaleźć pliku .pro w podkatalogu "%1" w "%2" - - Qt4ProjectManager::Qt4BuildConfigurationFactory - - Using Default Qt Version - Używając domyślnej wersji Qt - - - Using Qt Version "%1" - Używając wersji "%1" - - - New configuration - Nowa konfiguracja - - - New Configuration Name: - Nazwa nowej konfiguracji: - - - %1 Debug - %1 Debug - - - %1 Release - %1 Release - - Qt4ProjectManager::Qt4Manager - - Loading project %1 ... - Ładowanie projektu %1... - Failed opening project '%1': Project file does not exist Nie można otworzyć projektu "%1": projekt nie istnieje - - Failed opening project - Nie można otworzyć projektu - Failed opening project '%1': Project already open Nie można otworzyć projektu "%1": projekt jest już otwarty - - Opening %1 ... - Otwieranie %1... - - - Done opening project - Zakończono otwieranie projektu - Qt4ProjectManager::Internal::Qt4ProjectManagerPlugin @@ -15501,14 +13126,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Qt4ProjectManager::Internal::Qt4RunConfiguration - - Qt4RunConfiguration - Konfiguracja uruchamiania Qt4 - - - Could not parse %1. The Qt4 run configuration %2 can not be started. - Nie można przetworzyć %1. Konfiguracja Qt4 %2 nie może zostać uruchomiona. - Clean Environment @@ -15597,14 +13214,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Build Environment Środowisko budowania - - Running executable: <b>%1</b> %2 (in terminal) - Uruchamianie programu: <b>%1</b> %2 (w terminalu) - - - Running executable: <b>%1</b> %2 - Uruchamianie programu: <b>%1</b> %2 - QtModulesInfo @@ -15701,10 +13310,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.<specify a qmake location> <Podaj ścieżkę do qmake> - - Select QMake Executable - Wskaż program QMake - Select qmake Executable @@ -15791,18 +13396,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Found Qt version %1, using mkspec %2 (%3) Znaleziono wersję Qt %1 używającą mkspec %2 (%3) - - The Qt Version identified by %1 is not installed. Run make install - Wersja Qt identyfikowana przez %1 nie jest zainstalowana. Uruchom "make install" - - - %1 does not specify a valid Qt installation - %1 nie wskazuje na poprawną instalację Qt - - - Found Qt version %1, using mkspec %2 - Znaleziono wersję Qt %1 używającą mkspec %2 - Qt4ProjectManager::QtVersionManager @@ -15842,10 +13435,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Default: Domyślna: - - Compiler: - Kompilator: - Version: @@ -15859,10 +13448,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. QApplication - - The Qt Version has no toolchain. - Ta wersja Qt nie posiada zestawu narzędzi. - EditorManager @@ -15878,14 +13463,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Qt4ProjectManager::Internal::ConsoleAppWizard - - Qt4 Console Application - Aplikacja konsolowa Qt4 - - - Creates a Qt4 console application. - Tworzy aplikację konsolową Qt4. - Qt Console Application @@ -15907,10 +13484,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Qt4ProjectManager::Internal::EmptyProjectWizard - - Empty Qt4 Project - Pusty projekt Qt4 - Empty Qt Project @@ -15945,14 +13518,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Qt4ProjectManager::Internal::GuiAppWizard - - Qt4 Gui Application - Aplikacja Gui Qt4 - - - Creates a Qt4 Gui Application with one form. - Tworzy aplikację Gui Qt4 z jednym formularzem. - Qt Gui Application @@ -15994,10 +13559,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Creates a Qt based C++ Library. Tworzy bibliotekę C++ bazującą na Qt. - - Creates a C++ Library. - Tworzy bibliotekę C++. - Qt4ProjectManager::Internal::LibraryWizardDialog @@ -16045,13 +13606,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Wybierz moduły które chcesz włączyć do projektu. Rekomendowane moduły dla tegp projektu są domyślnie zaznaczone. - - Qt4ProjectManager::Internal::QtWizard - - The project %1 could not be opened. - Nie można otworzyć projektu %1. - - QObject @@ -16141,28 +13695,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Pokazuj tylko: - - QtScriptEditor::Internal::ScriptEditor - - <Select Symbol> - <Wybierz symbol> - - - - QtScriptEditor::Internal::QtScriptEditorPlugin - - Creates a Qt Script file. - Tworzy plik ze skryptem Qt. - - - Qt Script file - Plik ze skryptem Qt - - - Qt - Qt - - Locator @@ -16291,10 +13823,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Qt Resource file Plik z zasobami Qt - - Qt - Qt - &Undo @@ -16345,10 +13873,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Subversion::Internal::CheckoutWizardPage - - Specify repository, checkout directory and path. - Podaj składnicę, nazwę katalogu i ścieżkę do niego. - Location @@ -16395,22 +13919,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.Alt+S,Alt+A Alt+S,Alt+A - - Delete - Usuń - - - Delete "%1" - Usuń "%1" - - - Revert - Odwróć zmiany - - - Revert "%1" - Odwróć zmiany w "%1" - Diff Project @@ -16621,10 +14129,6 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona.The file has been changed. Do you want to revert it? Plik został zmieniony. Czy chcesz odwrócić w nim zmiany? - - The commit list spans several repositories (%1). Please commit them one by one. - Lista zmian dotyczy wielu składnic (%1). Wyślij zmiany osobno do każdej ze składnic. - Another commit is currently being executed. @@ -16809,10 +14313,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: TextEditor::Internal::FindInFiles - - Files on Disk - Pliki na dysku - Files on File System @@ -16849,10 +14349,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: TextEditor::FontSettingsPage - - Font & Colors - Czcionki i kolory - Font && Colors @@ -17089,37 +14585,21 @@ Następujące kodowania będą najprawdopodobniej pasowały: Go to Block End With Selection Zaznacz do końca bloku - - Goto Block Start - Przejdź do początku bloku - Ctrl+[ Ctrl+[ - - Goto Block End - Przejdź do końca bloku - Ctrl+] Ctrl+] - - Goto Block Start With Selection - Zaznacz do początku bloku - Ctrl+{ Ctrl+{ - - Goto Block End With Selection - Zaznacz do końca bloku - Ctrl+} @@ -17461,10 +14941,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: Diff Location Różnice w położeniu - - Text Editor - Edytor tekstu - Behavior @@ -17715,10 +15191,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: Welcome::Internal::CommunityWelcomePage - - Community - Społeczność - News && Support @@ -17809,17 +15281,9 @@ Następujące kodowania będą najprawdopodobniej pasowały: Open Link as New Page Otwórz odsyłacz na nowej stronie - - Open Link in New Tab - Otwórz odsyłacz w nowej karcie - HelpViewer - - Open Link in New Tab - Otwórz odsyłacz w nowej karcie - <title>about:blank</title> @@ -17830,28 +15294,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div> <title>Błąd 404...</title><div align="center"><br><br><h1>Strona nie została znaleziona</h1><br><h3>'%1'</h3></div> - - Help - Pomoc - - - Unable to launch external application. - - Nie można uruchomić zewnętrznej aplikacji. - - - - OK - OK - - - Copy &Link Location - Skopiuj &adres odsyłacza - - - Open Link in New Tab Ctrl+LMB - Skopiuj adres odsyłacza Ctrl+LMB - IndexWindow @@ -17870,49 +15312,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: Open Link as New Page Otwórz odsyłacz na nowej stronie - - Open Link in New Tab - Otwórz odsyłacz w nowej karcie - - - - Qt4ProjectManager::Internal::ProEditorModel - - <Global Scope> - <Zakres globalny> - - - Change Item - Zmień element - - - Change Variable Assignment - Zmień podstawienie zmiennej - - - Change Variable Type - Zmień typ zmiennej - - - Change Scope Condition - Zmień warunek zakresu - - - Change Expression - Zmień wyrażenie - - - Move Item - Przenieś element - - - Remove Item - Usuń element - - - Insert Item - Wstaw element - SharedTools::QrcEditor @@ -17926,10 +15325,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: Add Prefix Dodaj przedrostek - - Invalid file - Niepoprawny plik - Copy @@ -17945,10 +15340,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: Abort Przerwij - - The file %1 is not in a subdirectory of the resource file. Continuing will result in an invalid resource file. - Plik %1 nie leży w podkatalogu w którym znajduje się plik z zasobami. Kontynuacja spowoduje utworzenie niepoprawnego pliku z zasobami. - Invalid file location @@ -18060,10 +15451,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: MainWindow - - Open file - Otwórz plik - Bauhaus @@ -18234,98 +15621,14 @@ Następujące kodowania będą najprawdopodobniej pasowały: %1:%2 - %3 - - Quit - Zakończ - Ctrl+Q Ctrl+Q - - Run to main() - Uruchom aż do main() - - - Ctrl+F5 - Ctrl+F5 - - - F5 - F5 - - - Shift+F5 - Shift+F5 - - - F6 - F6 - - - F7 - F7 - - - Shift+F6 - Shift+F6 - - - Shift+F9 - Shift+F9 - - - Shift+F7 - Shift+F7 - - - Shift+F8 - Shift+F8 - - - F8 - F8 - - - ALT+D,ALT+W - ALT+D,ALT+W - - - Files - Pliki - - - File - Plik - - - Debug - Debugowanie - - - Not a runnable project - Projekt nie jest uruchamialny - - - The current startup project can not be run. - Bieżący projekt startowy nie może zostać uruchomiony. - - - Open File - Otwórz plik - - - Open Executable File - Otwórz plik z programem - MimeType - - unknown - nieznany - CMake Project file @@ -18406,10 +15709,6 @@ Następujące kodowania będą najprawdopodobniej pasowały: QML file Plik QML - - Qml Project file - Plik projektu Qml - Qt Project file @@ -18633,10 +15932,6 @@ aktywny tylko po wpisaniu przedrostka Edit Zmodyfikuj - - Refresh Interval: - Odświeżanie co: - min @@ -18907,14 +16202,6 @@ aktywny tylko po wpisaniu przedrostka Invalid regular expression flag '%0' Niepoprawna flaga "%0" wyrażenia regularnego - - Unexpected token '%1' - Niespodziewany znak "%1" - - - Expected token '%1' - Spodziewany znak "%1" - @@ -19030,10 +16317,6 @@ aktywny tylko po wpisaniu przedrostka Command Mappings Mapa komend - - Filter: - Filtr: - Command @@ -19074,10 +16357,6 @@ aktywny tylko po wpisaniu przedrostka Target: Produkt docelowy: - - Remove - Usuń - Reset @@ -20173,10 +17452,6 @@ Możesz odłożyć zmiany lub je porzucić. Form Formularz - - Designer - Designer - Snapping @@ -20213,10 +17488,6 @@ Możesz odłożyć zmiany lub je porzucić. Maemo Device Configurations Konfiguracje urządzenia Maemo - - Configuration Name: - Nazwa konfiguracji: - Device type: @@ -20252,10 +17523,6 @@ Możesz odłożyć zmiany lub je porzucić. Host Name: Nazwa hosta: - - SSH Port: - Port SSH: - Connection Timeout: @@ -20653,10 +17920,6 @@ Możesz odłożyć zmiany lub je porzucić. Utils::FilterLineEdit - - Type to filter - Wpisz aby odfiltrować - Filter @@ -21098,10 +18361,6 @@ Możesz odłożyć zmiany lub je porzucić. Debugger::DebuggerUISwitcher - - Locked - Zablokowany - &Languages @@ -21112,14 +18371,6 @@ Możesz odłożyć zmiany lub je porzucić. Alt+L Alt+L - - &Views - &Widoki - - - Reset to default layout - Przywróć domyślne rozmieszczenie - Language @@ -21191,10 +18442,6 @@ Możesz odłożyć zmiany lub je porzucić. Designer::Internal::FormEditorFactory - - Open Designer - Otwórz Designera - This file can only be edited in <b>Design</b> mode. @@ -22785,18 +20032,6 @@ Możesz odłożyć zmiany lub je porzucić. Clear Output Wyczyść wyjście - - Triggers a completion in this scope - Przełącza uzupełnianie kody w tym zakresie - - - Ctrl+Space - Ctrl+Space - - - Meta+Space - Meta+Space - <Type expression to evaluate> @@ -22997,7 +20232,7 @@ Możesz odłożyć zmiany lub je porzucić. [Inspector] connecting to debug server... - + [Inspektor] łączenie z serwerem debugowym... @@ -23248,11 +20483,7 @@ Please check your project settings. List of plugin directories passed to QML runtime qmlproject Template Comment added to generated .qmlproject file - - - - The project %1 could not be opened. - Nie można otworzyć projektu %1. + Lista katalogów z wtyczkami przekazywana do uruchamianego QML @@ -23322,11 +20553,7 @@ Please check your project settings. List of plugin directories passed to QML runtime qmlproject Template Comment added to generated .qmlproject file - - - - The project %1 could not be opened. - Nie można otworzyć projektu %1. + Lista katalogów z wtyczkami przekazywana do uruchamianego QML @@ -23343,17 +20570,17 @@ Please check your project settings. QML Runtime QMLRunConfiguration display name. - + Uruchamianie QML QML Runtime - + Uruchamianie QML QML Runtime arguments: - + Argumenty uruchamiania QML: @@ -23363,12 +20590,12 @@ Please check your project settings. Debugging Address: - + Adres debugowania: Debugging Port: - + Port debugowania: @@ -23631,13 +20858,6 @@ Czy uruchomiłeś Qemu? Błąd instalacji: %1 - - Qt4ProjectManager::Internal::MaemoDebugRunControl - - Debugging finished. - Zakończono debugowanie. - - Qt4ProjectManager::Internal::MaemoRunControlFactory @@ -23971,41 +21191,6 @@ Czy uruchomiłeś Qemu? Edytor tekstu - - TextEditor::TextEditorPlugin - - Creates a text file (.txt). - Tworzy plik tekstowy (.txt). - - - Text File - Plik tekstowy - - - General - Ogólne - - - Triggers a completion in this scope - Przełącza uzupełnianie kody w tym zakresie - - - Ctrl+Space - Ctrl+Space - - - Meta+Space - Meta+Space - - - Triggers a quick fix in this scope - Uaktywnia w tym zakresie szybką poprawkę - - - Alt+Return - Alt+Return - - VCSBase::VCSBasePlugin @@ -24119,12 +21304,12 @@ Czy uruchomiłeś Qemu? Debugging address: - + Adres debugowania: Debugging port: - + Port debugowania: @@ -24432,12 +21617,12 @@ name <email> alias <email> Source Size - Rozmiar źródła + Powierzchnia źródła Painted Size - + Powierzchnia rysowania @@ -24645,12 +21830,12 @@ name <email> alias <email> Text Input - + Wejście tekstu Input Mask - + Maska wejściowa @@ -24660,12 +21845,12 @@ name <email> alias <email> Pass. Char - + Znak mark. Password Character - + Znak markujący hasło @@ -24703,7 +21888,7 @@ name <email> alias <email> Origin - + Początek @@ -24829,10 +22014,6 @@ name <email> alias <email> Reset to Default Layout Przywróć domyślne rozmieszczenie - - Reset to default layout - Przywróć domyślne rozmieszczenie - GenericSshConnection @@ -25097,7 +22278,7 @@ name <email> alias <email> The Pdb process crashed some time after starting successfully. - + Proces Pdb zakończony błędem po poprawnym uruchomieniu. @@ -25107,12 +22288,12 @@ name <email> alias <email> An error occurred when attempting to write to the Pdb process. For example, the process may not be running, or it may have closed its input channel. - + Wystąpił błąd podczas próby pisania do procesu Pdb. Być może proces nie jest uruchomiony lub zamknął on swój kanał wejściowy. An error occurred when attempting to read from the Pdb process. For example, the process may not be running. - + Wystąpił błąd podczas próby czytania z procesu Pdb. Być może proces nie jest uruchomiony. @@ -25266,7 +22447,7 @@ name <email> alias <email> Package Creation: Running command '%1'. - + Tworzenie pakietu: uruchamianie komendy "%1". From 68151eff33197d835873669a652cfa433d59df54 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 25 May 2010 12:42:30 +0200 Subject: [PATCH 04/29] i18n: Fix warning when showing 'About' dialog. Caused by adding an argument in acea722d7543560b3ee7dd79dd5ab6a545eb51de. Reviewed-by: Robert Loehning --- share/qtcreator/translations/qtcreator_de.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 8a563a3deb6..80e16e37d77 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -2433,7 +2433,7 @@ Sollen sie überschrieben werden? <h3>Qt Creator %1 %8</h3>Based on Qt %2 (%3 bit)<br/><br/>Built on %4 at %5<br /><br/>%9<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> - <h3>Qt Creator %1</h3>Basierend auf Qt %2 (%3 bit)<br/><br/>Erstellt am %4 um %5<br /><br/>%8<br/>Copyright 2008-%6 %7. Alle Rechte vorbehalten.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> + <h3>Qt Creator %1 %8</h3>Basierend auf Qt %2 (%3 bit)<br/><br/>Erstellt am %4 um %5<br /><br/>%9<br/>Copyright 2008-%6 %7. Alle Rechte vorbehalten.<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/> From 7cecc5ff0c982e741134e1220878598e518ece92 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Tue, 25 May 2010 15:25:30 +0200 Subject: [PATCH 05/29] Cosmetic and layout fixes to qml feedback label - Added a dropshadow - More polished gradient and outline - Adjusted text label margins and spacing - Ensured position within graphicsview frame Reviewed-by: Marco Bubke --- .../formeditor/formeditorgraphicsview.cpp | 59 ++++++++++++------- .../formeditor/formeditorgraphicsview.h | 1 + 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp index 88a49302056..85a974b5e33 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp @@ -94,7 +94,10 @@ void FormEditorGraphicsView::mouseMoveEvent(QMouseEvent *event) delete mouseEvent; } - m_feedbackOriginPoint = event->pos() + QPoint(50, -80); + // Keeps the feedback bubble within screen boundraries + int tx = qMin(width() - 114, qMax(16, event->pos().x() + 50)); + int ty = qMin(height() - 45, qMax(10, event->pos().y() - 70)); + m_feedbackOriginPoint = QPoint(tx, ty); } void FormEditorGraphicsView::keyPressEvent(QKeyEvent *event) @@ -127,6 +130,30 @@ void FormEditorGraphicsView::leaveEvent(QEvent *event) { m_feedbackOriginPoint = QPoint(); QGraphicsView::leaveEvent(event); + } + +static QPixmap createBubblePixmap() +{ + QPixmap pixmap(124, 48); + pixmap.fill(Qt::transparent); + QPainter pmPainter(&pixmap); + pmPainter.setRenderHint(QPainter::Antialiasing); + pmPainter.setOpacity(0.85); + pmPainter.translate(0.5, 0.5); + pmPainter.setPen(Qt::NoPen); + pmPainter.setBrush(QColor(0, 0, 0, 40)); + pmPainter.drawRoundedRect(QRect(0, 0, 124, 48), 8, 8); + QLinearGradient gradient(QPoint(0, 0), QPoint(0, 44)); + gradient.setColorAt(0.0, QColor(70, 70, 70)); + gradient.setColorAt(1.0, QColor(10, 10, 10)); + pmPainter.setBrush(gradient); + pmPainter.setPen(QColor(60, 60, 60)); + pmPainter.drawRoundedRect(QRect(2, 1, 120, 45), 5, 5); + pmPainter.setBrush(Qt::NoBrush); + pmPainter.setPen(QColor(255, 255, 255, 140)); + pmPainter.drawRoundedRect(QRect(3, 2, 118, 43), 5, 5); + pmPainter.end(); + return pixmap; } void FormEditorGraphicsView::drawForeground(QPainter *painter, const QRectF &/*rect*/ ) @@ -138,7 +165,6 @@ void FormEditorGraphicsView::drawForeground(QPainter *painter, const QRectF &/*r return; painter->save(); - painter->resetTransform(); painter->translate(m_feedbackOriginPoint); @@ -150,18 +176,9 @@ void FormEditorGraphicsView::drawForeground(QPainter *painter, const QRectF &/*r font.setPixelSize(12); painter->setFont(font); - painter->save(); - painter->setOpacity(0.85); - - QLinearGradient gradient(QPoint(0, 0), QPoint(120, 45)); - gradient.setColorAt(0.0, Qt::black); - gradient.setColorAt(1.0, Qt::darkGray); - painter->setBrush(gradient); - - painter->setPen(Qt::black); - painter->drawRoundedRect(QRect(-1, -1, 120, 45), 5, 5); - painter->restore(); - + if (m_bubblePixmap.isNull()) + m_bubblePixmap = createBubblePixmap(); + painter->drawPixmap(-13, -7, m_bubblePixmap); if (m_beginXHasExpression) { if(m_feedbackNode.hasBindingProperty("x")) @@ -175,8 +192,8 @@ void FormEditorGraphicsView::drawForeground(QPainter *painter, const QRectF &/*r painter->setPen(defaultColor); } - painter->drawText(QPoint(2.0, 13.0), QString("x:")); - painter->drawText(QPoint(14.0, 13.0), m_feedbackNode.instanceValue("x").toString()); + painter->drawText(QPoint(8.0, 13.0), QString("x:")); + painter->drawText(QPoint(22.0, 13.0), m_feedbackNode.instanceValue("x").toString()); if (m_beginYHasExpression) { @@ -192,7 +209,7 @@ void FormEditorGraphicsView::drawForeground(QPainter *painter, const QRectF &/*r } painter->drawText(QPoint(60.0, 13.0), QString("y:")); - painter->drawText(QPoint(70.0, 13.0), m_feedbackNode.instanceValue("y").toString()); + painter->drawText(QPoint(72.0, 13.0), m_feedbackNode.instanceValue("y").toString()); if (m_beginWidthHasExpression) { @@ -207,8 +224,8 @@ void FormEditorGraphicsView::drawForeground(QPainter *painter, const QRectF &/*r painter->setPen(defaultColor); } - painter->drawText(QPoint(2.0, 26.0), QString("w:")); - painter->drawText(QPoint(14.0, 26.0), m_feedbackNode.instanceValue("width").toString()); + painter->drawText(QPoint(8.0, 29.0), QString("w:")); + painter->drawText(QPoint(22.0, 29.0), m_feedbackNode.instanceValue("width").toString()); if (m_beginHeightHasExpression) { @@ -223,8 +240,8 @@ void FormEditorGraphicsView::drawForeground(QPainter *painter, const QRectF &/*r painter->setPen(defaultColor); } - painter->drawText(QPoint(60.0, 26.0), QString("h:")); - painter->drawText(QPoint(70.0, 26.0), m_feedbackNode.instanceValue("height").toString()); + painter->drawText(QPoint(60.0, 29.0), QString("h:")); + painter->drawText(QPoint(72.0, 29.0), m_feedbackNode.instanceValue("height").toString()); if (m_parentNode != m_feedbackNode.instanceParent()) { painter->setPen(changeColor); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.h b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.h index d25f1cf6fb7..3ca72a8d35d 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.h @@ -67,6 +67,7 @@ private: bool m_beginWidthHasExpression; bool m_beginHeightHasExpression; QPoint m_feedbackOriginPoint; + QPixmap m_bubblePixmap; }; } // namespace QmlDesigner From d79f288c070b35d2e255676fecd36d8709e2a88a Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 25 May 2010 17:36:09 +0200 Subject: [PATCH 06/29] QmlDesigner.propertyEditor: store old size and postion when anchoring On settings anchors we delete x,y,width,height but now re store the old size and position in auxiliaryData to be able to resore it later if the user removes the anchors. Reviewed-by: Marco Bubke --- .../propertyeditor/qmlanchorbindingproxy.cpp | 66 +++++++++++++++---- 1 file changed, 53 insertions(+), 13 deletions(-) diff --git a/src/plugins/qmldesigner/components/propertyeditor/qmlanchorbindingproxy.cpp b/src/plugins/qmldesigner/components/propertyeditor/qmlanchorbindingproxy.cpp index b5a5450bf37..6ec0bebca01 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/qmlanchorbindingproxy.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/qmlanchorbindingproxy.cpp @@ -39,6 +39,8 @@ namespace QmlDesigner { class ModelNode; class NodeState; +const QString auxDataString = QLatin1String("anchors_"); + namespace Internal { QmlAnchorBindingProxy::QmlAnchorBindingProxy(QObject *parent) : @@ -269,6 +271,15 @@ void QmlAnchorBindingProxy::resetLayout() { m_fxItemNode.anchors().removeAnchors(); m_fxItemNode.anchors().removeMargins(); + if (qFuzzyCompare(m_fxItemNode.instancePosition().x(), 0.0)) + m_fxItemNode.setVariantProperty("x", m_fxItemNode.modelNode().auxiliaryData(auxDataString + "x")); + if (qFuzzyCompare(m_fxItemNode.instancePosition().y(), 0.0)) + m_fxItemNode.setVariantProperty("y", m_fxItemNode.modelNode().auxiliaryData(auxDataString + "y")); + if (qFuzzyCompare(m_fxItemNode.instanceSize().width(), 0.0)) + m_fxItemNode.setVariantProperty("width", m_fxItemNode.modelNode().auxiliaryData(auxDataString + "width")); + if (qFuzzyCompare(m_fxItemNode.instanceSize().height(), 0.0)) + m_fxItemNode.setVariantProperty("height", m_fxItemNode.modelNode().auxiliaryData(auxDataString + "height")); + emit topAnchorChanged(); emit bottomAnchorChanged(); emit leftAnchorChanged(); @@ -290,6 +301,7 @@ void QmlAnchorBindingProxy::setBottomAnchor(bool anchor) removeBottomAnchor(); } else { calcBottomMargin(); + m_fxItemNode.modelNode().setAuxiliaryData(auxDataString + "height", m_fxItemNode.instanceSize().height()); m_fxItemNode.removeVariantProperty("height"); } emit bottomAnchorChanged(); @@ -312,7 +324,8 @@ void QmlAnchorBindingProxy::setLeftAnchor(bool anchor) removeLeftAnchor(); } else { calcLeftMargin(); - m_fxItemNode.removeVariantProperty("width"); + m_fxItemNode.modelNode().setAuxiliaryData(auxDataString + "x", m_fxItemNode.instancePosition().x()); + m_fxItemNode.removeVariantProperty("x"); } emit leftAnchorChanged(); if (hasAnchors() != anchor) @@ -333,7 +346,8 @@ void QmlAnchorBindingProxy::setRightAnchor(bool anchor) removeRightAnchor(); } else { calcRightMargin(); - m_fxItemNode.removeVariantProperty("x"); + m_fxItemNode.modelNode().setAuxiliaryData(auxDataString + "width", m_fxItemNode.instanceSize().width()); + m_fxItemNode.removeVariantProperty("width"); } emit rightAnchorChanged(); if (hasAnchors() != anchor) @@ -364,13 +378,11 @@ void QmlAnchorBindingProxy::calcTopMargin() { m_locked = true; - if (m_topTarget == m_fxItemNode.modelNode().parentProperty().parentModelNode()) { + if (m_topTarget.modelNode() == m_fxItemNode.modelNode().parentProperty().parentModelNode()) { qreal topMargin = transformedBoundingBox().top() - parentBoundingBox().top(); m_fxItemNode.anchors().setMargin( AnchorLine::Top, topMargin); m_fxItemNode.anchors().setAnchor(AnchorLine::Top, m_topTarget, AnchorLine::Top); } else { - qDebug() << boundingBox(m_fxItemNode).top(); - qDebug() << boundingBox(m_topTarget).bottom(); qreal topMargin = boundingBox(m_fxItemNode).top() - boundingBox(m_topTarget).bottom(); m_fxItemNode.anchors().setMargin( AnchorLine::Top, topMargin); m_fxItemNode.anchors().setAnchor(AnchorLine::Top, m_topTarget, AnchorLine::Bottom); @@ -383,7 +395,7 @@ void QmlAnchorBindingProxy::calcBottomMargin() { m_locked = true; - if (m_bottomTarget == m_fxItemNode.modelNode().parentProperty().parentModelNode()) { + if (m_bottomTarget.modelNode() == m_fxItemNode.modelNode().parentProperty().parentModelNode()) { qreal bottomMargin = parentBoundingBox().bottom() - transformedBoundingBox().bottom(); m_fxItemNode.anchors().setMargin( AnchorLine::Bottom, bottomMargin); m_fxItemNode.anchors().setAnchor(AnchorLine::Bottom, m_bottomTarget, AnchorLine::Bottom); @@ -400,7 +412,7 @@ void QmlAnchorBindingProxy::calcLeftMargin() { m_locked = true; - if (m_leftTarget == m_fxItemNode.modelNode().parentProperty().parentModelNode()) { + if (m_leftTarget.modelNode() == m_fxItemNode.modelNode().parentProperty().parentModelNode()) { qreal leftMargin = transformedBoundingBox().left() - parentBoundingBox().left(); m_fxItemNode.anchors().setMargin(AnchorLine::Left, leftMargin); m_fxItemNode.anchors().setAnchor(AnchorLine::Left, m_leftTarget, AnchorLine::Left); @@ -417,7 +429,7 @@ void QmlAnchorBindingProxy::calcRightMargin() { m_locked = true; - if (m_rightTarget == m_fxItemNode.modelNode().parentProperty().parentModelNode()) { + if (m_rightTarget.modelNode() == m_fxItemNode.modelNode().parentProperty().parentModelNode()) { qreal rightMargin = parentBoundingBox().right() - transformedBoundingBox().right(); m_fxItemNode.anchors().setMargin( AnchorLine::Right, rightMargin); m_fxItemNode.anchors().setAnchor(AnchorLine::Right, m_rightTarget, AnchorLine::Right); @@ -444,6 +456,7 @@ void QmlAnchorBindingProxy::setTopAnchor(bool anchor) removeTopAnchor(); } else { calcTopMargin(); + m_fxItemNode.modelNode().setAuxiliaryData(auxDataString + "y", m_fxItemNode.instancePosition().y()); m_fxItemNode.removeVariantProperty("y"); } emit topAnchorChanged(); @@ -456,6 +469,10 @@ void QmlAnchorBindingProxy::removeTopAnchor() { m_fxItemNode.anchors().removeAnchor(AnchorLine::Top); m_fxItemNode.anchors().removeMargin(AnchorLine::Top); + + if (qFuzzyCompare(m_fxItemNode.instancePosition().y(), 0.0) && m_fxItemNode.modelNode().hasAuxiliaryData(auxDataString + "y")) + m_fxItemNode.setVariantProperty("y", m_fxItemNode.modelNode().auxiliaryData(auxDataString + "y")); + } void QmlAnchorBindingProxy::removeBottomAnchor() { @@ -463,6 +480,9 @@ void QmlAnchorBindingProxy::removeBottomAnchor() { m_fxItemNode.anchors().removeAnchor(AnchorLine::Bottom); m_fxItemNode.anchors().removeMargin(AnchorLine::Bottom); + + if (qFuzzyCompare(m_fxItemNode.instanceSize().height(), 0.0) && m_fxItemNode.modelNode().hasAuxiliaryData(auxDataString + "height")) + m_fxItemNode.setVariantProperty("height", m_fxItemNode.modelNode().auxiliaryData(auxDataString + "height")); } void QmlAnchorBindingProxy::removeLeftAnchor() { @@ -470,6 +490,9 @@ void QmlAnchorBindingProxy::removeLeftAnchor() { m_fxItemNode.anchors().removeAnchor(AnchorLine::Left); m_fxItemNode.anchors().removeMargin(AnchorLine::Left); + + if (qFuzzyCompare(m_fxItemNode.instancePosition().x(), 0.0) && m_fxItemNode.modelNode().hasAuxiliaryData(auxDataString + "x")) + m_fxItemNode.setVariantProperty("x", m_fxItemNode.modelNode().auxiliaryData(auxDataString + "x")); } void QmlAnchorBindingProxy::removeRightAnchor() { @@ -477,6 +500,9 @@ void QmlAnchorBindingProxy::removeRightAnchor() { m_fxItemNode.anchors().removeAnchor(AnchorLine::Right); m_fxItemNode.anchors().removeMargin(AnchorLine::Right); + + if (qFuzzyCompare(m_fxItemNode.instanceSize().width(), 0.0) && m_fxItemNode.modelNode().hasAuxiliaryData(auxDataString + "width")) + m_fxItemNode.setVariantProperty("width", m_fxItemNode.modelNode().auxiliaryData(auxDataString + "width")); } void QmlAnchorBindingProxy::setVerticalCentered(bool centered) @@ -487,6 +513,8 @@ void QmlAnchorBindingProxy::setVerticalCentered(bool centered) if (verticalCentered() == centered) return; + m_locked = true; + RewriterTransaction transaction = m_fxItemNode.modelNode().view()->beginRewriterTransaction(); if (!centered) { @@ -495,6 +523,9 @@ void QmlAnchorBindingProxy::setVerticalCentered(bool centered) } else { m_fxItemNode.anchors().setAnchor(AnchorLine::VerticalCenter, m_fxItemNode.modelNode().parentProperty().parentModelNode(), AnchorLine::VerticalCenter); } + + m_locked = false; + emit centeredVChanged(); } @@ -506,6 +537,8 @@ void QmlAnchorBindingProxy::setHorizontalCentered(bool centered) if (horizontalCentered() == centered) return; + m_locked = true; + RewriterTransaction transaction = m_fxItemNode.modelNode().view()->beginRewriterTransaction(); if (!centered) { @@ -514,6 +547,9 @@ void QmlAnchorBindingProxy::setHorizontalCentered(bool centered) } else { m_fxItemNode.anchors().setAnchor(AnchorLine::HorizontalCenter, m_fxItemNode.modelNode().parentProperty().parentModelNode(), AnchorLine::HorizontalCenter); } + + m_locked = false; + emit centeredHChanged(); } @@ -532,6 +568,15 @@ void QmlAnchorBindingProxy::fill() RewriterTransaction transaction = m_fxItemNode.modelNode().view()->beginRewriterTransaction(); + m_fxItemNode.modelNode().setAuxiliaryData(auxDataString + "x", m_fxItemNode.instancePosition().x()); + m_fxItemNode.removeVariantProperty("x"); + m_fxItemNode.modelNode().setAuxiliaryData(auxDataString + "y", m_fxItemNode.instancePosition().y()); + m_fxItemNode.removeVariantProperty("y"); + m_fxItemNode.modelNode().setAuxiliaryData(auxDataString + "width", m_fxItemNode.instanceSize().width()); + m_fxItemNode.removeVariantProperty("width"); + m_fxItemNode.modelNode().setAuxiliaryData(auxDataString + "height", m_fxItemNode.instanceSize().height()); + m_fxItemNode.removeVariantProperty("height"); + m_fxItemNode.anchors().fill(); setHorizontalCentered(false); @@ -542,11 +587,6 @@ void QmlAnchorBindingProxy::fill() m_fxItemNode.anchors().removeMargin(AnchorLine::Top); m_fxItemNode.anchors().removeMargin(AnchorLine::Bottom); - m_fxItemNode.removeVariantProperty("x"); - m_fxItemNode.removeVariantProperty("y"); - m_fxItemNode.removeVariantProperty("width"); - m_fxItemNode.removeVariantProperty("height"); - emit topAnchorChanged(); emit bottomAnchorChanged(); emit leftAnchorChanged(); From 441403bf60f3a81033a245516a74be2db686d001 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 25 May 2010 17:47:04 +0200 Subject: [PATCH 07/29] QmlDesigner.model: QmlAnchors get simplification Now anchors.verticalCenter & anchors.horizontalCenter get simplified to anchors.centerIn. We also simplify the fill case. Task-number: Bauhaus-109 Reviewed-by: Marco Bubke --- .../designercore/include/qmlanchors.h | 1 + .../designercore/model/qmlanchors.cpp | 50 ++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/include/qmlanchors.h b/src/plugins/qmldesigner/designercore/include/qmlanchors.h index 409a51bc88a..ccfd772178f 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlanchors.h +++ b/src/plugins/qmldesigner/designercore/include/qmlanchors.h @@ -103,6 +103,7 @@ public: protected: QmlItemNode qmlItemNode() const; + void beautify(); private: QmlItemNode m_qmlItemNode; diff --git a/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp b/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp index 6a71c3e356d..1df6106b95a 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp @@ -130,6 +130,52 @@ bool QmlAnchors::isValid() const return m_qmlItemNode.isValid(); } +void QmlAnchors::beautify() +{ + + if ((instanceHasAnchor(AnchorLine::Left) && + instanceHasAnchor(AnchorLine::Right) && + instanceHasAnchor(AnchorLine::Top) && + instanceHasAnchor(AnchorLine::Bottom)) && + + (instanceAnchor(AnchorLine::Left).type() == AnchorLine::Left && + instanceAnchor(AnchorLine::Right).type() == AnchorLine::Right && + instanceAnchor(AnchorLine::Top).type() == AnchorLine::Top && + instanceAnchor(AnchorLine::Bottom).type() == AnchorLine::Bottom) && + + (instanceAnchor(AnchorLine::Left).qmlItemNode() == + instanceAnchor(AnchorLine::Right).qmlItemNode() && + instanceAnchor(AnchorLine::Top).qmlItemNode() == + instanceAnchor(AnchorLine::Bottom).qmlItemNode()) && + (instanceAnchor(AnchorLine::Left).qmlItemNode() == + instanceAnchor(AnchorLine::Bottom).qmlItemNode())) { + + if (instanceHasAnchor(AnchorLine::Fill)) + return; //avoid recursion + + QmlItemNode targetNode(instanceAnchor(AnchorLine::Left).qmlItemNode()); + removeAnchors(); + setAnchor(AnchorLine::Fill, targetNode, AnchorLine::Fill); + } + + if ((instanceHasAnchor(AnchorLine::VerticalCenter) && + instanceHasAnchor(AnchorLine::HorizontalCenter)) && + + (instanceAnchor(AnchorLine::VerticalCenter).type() == AnchorLine::VerticalCenter && + instanceAnchor(AnchorLine::HorizontalCenter).type() == AnchorLine::HorizontalCenter) && + + (instanceAnchor(AnchorLine::VerticalCenter).qmlItemNode() == + instanceAnchor(AnchorLine::HorizontalCenter).qmlItemNode())) { + + if (instanceHasAnchor(AnchorLine::Center)) + return; //avoid recursion + + QmlItemNode targetNode(instanceAnchor(AnchorLine::VerticalCenter).qmlItemNode()); + removeAnchors(); + setAnchor(AnchorLine::Center, targetNode, AnchorLine::Center); + } +} + void QmlAnchors::setAnchor(AnchorLine::Type sourceAnchorLine, const QmlItemNode &targetQmlItemNode, AnchorLine::Type targetAnchorLine) @@ -145,9 +191,11 @@ void QmlAnchors::setAnchor(AnchorLine::Type sourceAnchorLine, QString targetExpression = targetQmlItemNode.modelNode().validId(); if (targetQmlItemNode.modelNode() == qmlItemNode().modelNode().parentProperty().parentModelNode()) targetExpression = "parent"; - targetExpression = targetExpression + QLatin1Char('.') + lineTypeToString(targetAnchorLine); + if (sourceAnchorLine != AnchorLine::Center && sourceAnchorLine != AnchorLine::Fill) + targetExpression = targetExpression + QLatin1Char('.') + lineTypeToString(targetAnchorLine); qmlItemNode().modelNode().bindingProperty(propertyName).setExpression(targetExpression); } + beautify(); } bool detectHorizontalCycle(const ModelNode &node, QList knownNodeList) From a952b9ba4e58d76fcadad259fc8ae54fa20b3b43 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 25 May 2010 17:49:57 +0200 Subject: [PATCH 08/29] QmlDesigner.autoTests Integration tests TestCore::testAnchorsAndRewriting TestCore::testAnchorsAndRewritingCenter Task-number: Bauhaus-109 --- .../qml/qmldesigner/coretests/testcore.cpp | 115 ++++++++++++++++++ .../auto/qml/qmldesigner/coretests/testcore.h | 2 + 2 files changed, 117 insertions(+) diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp index 2208c4f5e46..43521af494d 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp @@ -3278,6 +3278,121 @@ void TestCore::testSubComponentManager() QVERIFY(myButtonMetaInfo.property("border.width", true).isValid()); } +void TestCore::testAnchorsAndRewriting() +{ + const QString qmlString("import Qt 4.7\n" + "Rectangle {\n" + " id: root\n" + " x: 10;\n" + " y: 10;\n" + " Rectangle {\n" + " id: rectangle1\n" + " x: 10;\n" + " y: 10;\n" + " }\n" + " Component {\n" + " id: rectangleComponent\n" + " Rectangle {\n" + " x: 100;\n" + " y: 100;\n" + " }\n" + " }\n" + "}"); + + QSKIP("See BAUHAUS-729", SkipAll); + + QPlainTextEdit textEdit; + textEdit.setPlainText(qmlString); + NotIndentingTextEditModifier textModifier(&textEdit); + + QScopedPointer model(Model::create("Qt/Item", 4, 7)); + QVERIFY(model.data()); + + QScopedPointer view(new TestView); + model->attachView(view.data()); + + // read in + QScopedPointer testRewriterView(new TestRewriterView()); + testRewriterView->setTextModifier(&textModifier); + model->attachView(testRewriterView.data()); + + ModelNode rootNode = view->rootModelNode(); + QVERIFY(rootNode.isValid()); + QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + + QmlItemNode rootItemNode = view->rootQmlItemNode(); + QVERIFY(rootItemNode.isValid()); + + QmlItemNode childNode = rootItemNode.allDirectSubModelNodes().first(); + QVERIFY(childNode.isValid()); + + childNode.anchors().setMargin(AnchorLine::Left, 280); + childNode.anchors().setAnchor(AnchorLine::Left, rootItemNode, AnchorLine::Left); + childNode.anchors().setMargin(AnchorLine::Right, 200); + childNode.anchors().setAnchor(AnchorLine::Right, rootItemNode, AnchorLine::Right); + childNode.anchors().setMargin(AnchorLine::Bottom, 50); + childNode.anchors().setAnchor(AnchorLine::Bottom, rootItemNode, AnchorLine::Bottom); + + { + RewriterTransaction transaction = view->beginRewriterTransaction(); + + childNode.anchors().setMargin(AnchorLine::Top, 100); + childNode.anchors().setAnchor(AnchorLine::Top, rootItemNode, AnchorLine::Top); + } +} + +void TestCore::testAnchorsAndRewritingCenter() +{ + const QString qmlString("import Qt 4.7\n" + "Rectangle {\n" + " id: root\n" + " x: 10;\n" + " y: 10;\n" + " Rectangle {\n" + " id: rectangle1\n" + " x: 10;\n" + " y: 10;\n" + " }\n" + " Component {\n" + " id: rectangleComponent\n" + " Rectangle {\n" + " x: 100;\n" + " y: 100;\n" + " }\n" + " }\n" + "}"); + + //QSKIP("See BAUHAUS-729", SkipAll); + + QPlainTextEdit textEdit; + textEdit.setPlainText(qmlString); + NotIndentingTextEditModifier textModifier(&textEdit); + + QScopedPointer model(Model::create("Qt/Item", 4, 7)); + QVERIFY(model.data()); + + QScopedPointer view(new TestView); + model->attachView(view.data()); + + // read in + QScopedPointer testRewriterView(new TestRewriterView()); + testRewriterView->setTextModifier(&textModifier); + model->attachView(testRewriterView.data()); + + ModelNode rootNode = view->rootModelNode(); + QVERIFY(rootNode.isValid()); + QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + + QmlItemNode rootItemNode = view->rootQmlItemNode(); + QVERIFY(rootItemNode.isValid()); + + QmlItemNode childNode = rootItemNode.allDirectSubModelNodes().first(); + QVERIFY(childNode.isValid()); + + childNode.anchors().setAnchor(AnchorLine::VerticalCenter, rootItemNode, AnchorLine::VerticalCenter); + childNode.anchors().setAnchor(AnchorLine::HorizontalCenter, rootItemNode, AnchorLine::HorizontalCenter); +} + void TestCore::loadQml() { char qmlString[] = "import Qt 4.7\n" diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.h b/tests/auto/qml/qmldesigner/coretests/testcore.h index 91b4e1e0e5a..5bfd5e9320c 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.h +++ b/tests/auto/qml/qmldesigner/coretests/testcore.h @@ -164,6 +164,8 @@ private slots: void testCopyModelRewriter1(); void testCopyModelRewriter2(); void testSubComponentManager(); + void testAnchorsAndRewriting(); + void testAnchorsAndRewritingCenter(); // // regression tests From 43c892d399ce7e678361ea4a3072b785f6d34cb6 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Tue, 25 May 2010 17:44:52 +0200 Subject: [PATCH 09/29] Translation fix Reviewed-by: Oswald Buddenhagen --- share/qtcreator/translations/qtcreator_de.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 80e16e37d77..2a47c9da1b4 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -2053,7 +2053,7 @@ Sollen sie überschrieben werden? &Options... - &Einstellungen + &Einstellungen... From 5784e2ad869bc6feb52be6c8ee39c4a5ee7d1dff Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Tue, 25 May 2010 17:09:33 +0200 Subject: [PATCH 10/29] prefer adding Qt versions shipping with QML examples Reviewed-by: dt --- .../qt4projectmanager/qtversionmanager.cpp | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index b84098ad3c5..10006b18219 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -228,23 +228,30 @@ void QtVersionManager::updateDocumentation() void QtVersionManager::updateExamples() { - QList versions; - versions.append(m_versions); - - QString examplesPath; - QString demosPath; QtVersion *version = 0; + QList candidates; + // try to find a version which has both, demos and examples - foreach (version, versions) { - if (version->hasExamples()) - examplesPath = version->examplesPath(); - if (version->hasDemos()) - demosPath = version->demosPath(); - if (!examplesPath.isEmpty() && !demosPath.isEmpty()) { - emit updateExamples(examplesPath, demosPath, version->sourcePath()); + foreach (version, m_versions) { + if (version->hasExamples() && version->hasDemos()) + candidates.append(version); + } + + // prefer versions with declarative examples + foreach (version, candidates) { + if (QDir(version->examplesPath()+"/declarative").exists()) { + emit updateExamples(version->examplesPath(), version->demosPath(), version->sourcePath()); return; } } + + if (!candidates.isEmpty()) { + version = candidates.first(); + emit updateExamples(version->examplesPath(), version->demosPath(), version->sourcePath()); + return; + } + return; + } int QtVersionManager::getUniqueId() From 3d9cd608e7a659e2b66471442bfa62ddd014f713 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Tue, 25 May 2010 19:18:22 +0200 Subject: [PATCH 11/29] Find declarative examples in nightly build package Reviewed-by: dt --- .../gettingstartedwelcomepagewidget.cpp | 10 ++++++++++ .../gettingstartedwelcomepagewidget.h | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp index acd19d29a38..58a25be5238 100644 --- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp +++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -94,6 +95,7 @@ GettingStartedWelcomePageWidget::GettingStartedWelcomePageWidget(QWidget *parent QIcon::fromTheme("document-new", ui->createNewProjectButton->icon())); ui->openProjectButton->setIcon( QIcon::fromTheme("document-open", ui->openProjectButton->icon())); + QTimer::singleShot(0, this, SLOT(slotSetPrivateQmlExamples())); } GettingStartedWelcomePageWidget::~GettingStartedWelcomePageWidget() @@ -101,6 +103,14 @@ GettingStartedWelcomePageWidget::~GettingStartedWelcomePageWidget() delete ui; } +void GettingStartedWelcomePageWidget::slotSetPrivateQmlExamples() +{ + if (!ui->qmlExamplesButton->menu()) { + const QString resPath = Core::ICore::instance()->resourcePath(); + updateQmlExamples(resPath, resPath); + } + } + void GettingStartedWelcomePageWidget::updateCppExamples(const QString &examplePath, const QString &sourcePath, const QString &demoXml) diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.h b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.h index 5d730953c54..db2664dee94 100644 --- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.h +++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.h @@ -58,6 +58,7 @@ private slots: void slotNextTip(); void slotPrevTip(); void slotCreateNewProject(); + void slotSetPrivateQmlExamples(); private: QStringList tipsOfTheDay(); @@ -66,7 +67,6 @@ private: const QString &demoXml); void updateQmlExamples(const QString &examplePath, const QString &sourcePath); - Ui::GettingStartedWelcomePageWidget *ui; int m_currentTip; }; From 26b51e163809605000454f99137998d623916a2a Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 26 May 2010 09:32:10 +0200 Subject: [PATCH 12/29] Debugger: Fix compilation & test results of C++-library dumpers. Fix breakage resulting from 3d852917187e29892529ab51d24c1a1177068a88 (Qt 4.7), remove obsolete 'saddr'-element. --- tests/auto/debugger/tst_dumpers.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 48e0510149b..9edeca64d88 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -1,3 +1,7 @@ +#define private public // Give us access to private 'backward' member of QMapNode. +# include +#undef private + #include "gdb/gdbmi.h" #include "gdbmacros.h" #include "gdbmacros_p.h" @@ -1243,9 +1247,8 @@ template const QString typeStr = stripPtrType(typeToString()); const QByteArray addrStr = valToString(curElem); if (curElem != 0) { - expected.append("addr='").append(addrStr).append("',saddr='"). - append(addrStr).append("',type='").append(typeStr). - append("',value='"). + expected.append("addr='").append(addrStr).append("',type='"). + append(typeStr).append("',value='"). append(derefValToString(curElem)).append("'"); } else { expected.append("addr='").append(ptrToBa(&curElem)).append("',type='"). @@ -1413,9 +1416,9 @@ void tst_Debugger::dumpQList_int_star() ilist.append(0); testDumper("value='<2 items>',valueeditable='false',numchild='2'," "internal='1',childtype='int*',childnumchild='1',children=[" - "{saddr='" + str(&ilist.at(0)) + "',addr='" + str(deref(&ilist.at(0))) + + "{addr='" + str(deref(&ilist.at(0))) + "',type='int',value='1'}," - "{saddr='" + str(&ilist.at(1)) + "',value='',numchild='0'}]", + "{value='',numchild='0'}]", &ilist, NS"QList", true, "int*"); } @@ -2314,15 +2317,13 @@ void tst_Debugger::dumpStdVector() vector.push_back(new std::list(list)); testDumper("value='<1 items>',valueeditable='false',numchild='1'," "childtype='" + inner + "',childnumchild='1'," - "children=[{addr='" + str(deref(&vector[0])) + "'," - "saddr='" + str(deref(&vector[0])) + "',type='" + innerp + "'}]", + "children=[{addr='" + str(deref(&vector[0])) + "',type='" + innerp + "'}]", &vector, "std::vector", true, inner, "", sizeof(std::list *)); vector.push_back(0); list.push_back(45); testDumper("value='<2 items>',valueeditable='false',numchild='2'," "childtype='" + inner + "',childnumchild='1'," - "children=[{addr='" + str(deref(&vector[0])) + "'," - "saddr='" + str(deref(&vector[0])) + "',type='" + innerp + "'}," + "children=[{addr='" + str(deref(&vector[0])) + "',type='" + innerp + "'}," "{addr='" + str(&vector[1]) + "'," "type='" + innerp + "',value='',numchild='0'}]", &vector, "std::vector", true, inner, "", sizeof(std::list *)); From 4ff06e3cd8fd19c512dfef76400ce3e5b1c8b907 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 26 May 2010 10:25:00 +0200 Subject: [PATCH 13/29] don't put the temporary header files into the qm dir this makes a difference only on macx, where it happens to fix the ts target (because of missing quoting). but it is More Correct anyway. --- share/qtcreator/translations/translations.pro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/qtcreator/translations/translations.pro b/share/qtcreator/translations/translations.pro index d15586009a6..0c7159690b0 100644 --- a/share/qtcreator/translations/translations.pro +++ b/share/qtcreator/translations/translations.pro @@ -14,8 +14,8 @@ LRELEASE = $$targetPath($$[QT_INSTALL_BINS]/lrelease) TRANSLATIONS = $$prependAll(LANGUAGES, $$PWD/qtcreator_,.ts) -MIME_TR_H = $$IDE_DATA_PATH/translations/mime_tr.h -CUSTOMWIZARD_TR_H = $$IDE_DATA_PATH/translations/customwizard_tr.h +MIME_TR_H = $$OUT_PWD/mime_tr.h +CUSTOMWIZARD_TR_H = $$OUT_PWD/customwizard_tr.h contains(QT_VERSION, ^4\.[0-6]\..*) { ts.commands = @echo This Qt version is too old for the ts target. Need Qt 4.7+. From 058d76fca8a6abf56d6ff0a9ccf5e1df22b7a369 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 26 May 2010 11:57:39 +0200 Subject: [PATCH 14/29] TaskWindow: Fix warnings about leaking X11 pixmap data. Attach icons to TaskModel. Reviewed-by: Daniel Molkentin --- src/plugins/projectexplorer/taskwindow.cpp | 51 ++++++++++--------- src/plugins/projectexplorer/taskwindow.h | 5 +- .../wizards/targetsetuppage.cpp | 14 +++-- 3 files changed, 41 insertions(+), 29 deletions(-) diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp index c74e94dd060..fb289419386 100644 --- a/src/plugins/projectexplorer/taskwindow.cpp +++ b/src/plugins/projectexplorer/taskwindow.cpp @@ -53,27 +53,12 @@ #include namespace { - const int TASK_ICON_SIZE = 16; const int TASK_ICON_MARGIN = 2; - -const QIcon ERROR_ICON(":/projectexplorer/images/compile_error.png"); -const QIcon WARNING_ICON(":/projectexplorer/images/compile_warning.png"); - } namespace ProjectExplorer { -QIcon Task::icon() const -{ - if (type == ProjectExplorer::Task::Error) - return ERROR_ICON; - else if (type == ProjectExplorer::Task::Warning) - return WARNING_ICON; - else - return QIcon(); -} - namespace Internal { class TaskView : public QListView @@ -141,6 +126,8 @@ public: enum Roles { File = Qt::UserRole, Line, Description, FileNotFound, Type, Category, Icon, Task_t }; + QIcon taskTypeIcon(Task::TaskType t) const; + private: QHash m_categories; // category id -> display name QList m_tasks; // all tasks (in order of insertion) @@ -148,8 +135,8 @@ private: QHash m_fileNotFound; int m_maxSizeOfFileName; - QIcon m_errorIcon; - QIcon m_warningIcon; + const QIcon m_errorIcon; + const QIcon m_warningIcon; }; class TaskFilterModel : public QSortFilterProxyModel @@ -224,11 +211,24 @@ void TaskView::keyPressEvent(QKeyEvent *e) // TaskModel ///// -TaskModel::TaskModel() +TaskModel::TaskModel() : + m_maxSizeOfFileName(0), + m_errorIcon(QLatin1String(":/projectexplorer/images/compile_error.png")), + m_warningIcon(QLatin1String(":/projectexplorer/images/compile_warning.png")) { - m_maxSizeOfFileName = 0; - m_errorIcon = QIcon(":/projectexplorer/images/compile_error.png"); - m_warningIcon = QIcon(":/projectexplorer/images/compile_warning.png"); +} + +QIcon TaskModel::taskTypeIcon(Task::TaskType t) const +{ + switch (t) { + case Task::Warning: + return m_warningIcon; + case Task::Error: + return m_errorIcon; + case Task::Unknown: + break; + } + return QIcon(); } void TaskModel::addCategory(const QString &categoryId, const QString &categoryName) @@ -353,7 +353,7 @@ QVariant TaskModel::data(const QModelIndex &index, int role) const } else if (role == TaskModel::Category) { return m_tasks.at(index.row()).category; } else if (role == TaskModel::Icon) { - return m_tasks.at(index.row()).icon(); + return taskTypeIcon(m_tasks.at(index.row()).type); } else if (role == TaskModel::Task_t) { return QVariant::fromValue(m_tasks.at(index.row())); } @@ -495,7 +495,7 @@ TaskWindow::TaskWindow() connect(m_listview, SIGNAL(clicked(QModelIndex)), this, SLOT(showTaskInFile(QModelIndex))); - m_filterWarningsButton = createFilterButton(WARNING_ICON, + m_filterWarningsButton = createFilterButton(taskTypeIcon(Task::Warning), tr("Show Warnings"), this, SLOT(setShowWarnings(bool))); @@ -771,6 +771,11 @@ void TaskWindow::updateActions() m_copyAction->setEnabled(m_model->tasks().count() > 0); } +QIcon TaskWindow::taskTypeIcon(Task::TaskType t) const +{ + return m_model->taskTypeIcon(t); +} + ///// // Delegate ///// diff --git a/src/plugins/projectexplorer/taskwindow.h b/src/plugins/projectexplorer/taskwindow.h index 656f9940944..1d6df98e20e 100644 --- a/src/plugins/projectexplorer/taskwindow.h +++ b/src/plugins/projectexplorer/taskwindow.h @@ -86,9 +86,6 @@ struct PROJECTEXPLORER_EXPORT Task { // doesn't work if you split it up, nor are our parsers // anywhere near being that good QList formats; - - /// Get the icon used to represent this task - QIcon icon() const; }; class PROJECTEXPLORER_EXPORT TaskWindow : public Core::IOutputPane @@ -128,6 +125,8 @@ public: void goToNext(); void goToPrev(); + QIcon taskTypeIcon(Task::TaskType t) const; + signals: void tasksChanged(); diff --git a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp index dfe383e3fa0..edb1a8a3235 100644 --- a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp +++ b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp @@ -35,6 +35,9 @@ #include "qt4projectmanagerconstants.h" #include "qt4target.h" +#include +#include + #include #include #include @@ -442,21 +445,26 @@ QPair TargetSetupPage::reportIssues(Qt4ProjectManager::QtVersion if (m_proFilePath.isEmpty()) return qMakePair(QIcon(), QString()); + const ProjectExplorer::TaskWindow *taskWindow = ExtensionSystem::PluginManager::instance() + ->getObject(); + QTC_ASSERT(taskWindow, return qMakePair(QIcon(), QString())); + QList issues = version->reportIssues(m_proFilePath); + QString text; QIcon icon; - foreach (const ProjectExplorer::Task t, issues) { + foreach (const ProjectExplorer::Task &t, issues) { if (!text.isEmpty()) text.append(QLatin1String("
")); // set severity: QString severity; if (t.type == ProjectExplorer::Task::Error) { - icon = t.icon(); + icon = taskWindow->taskTypeIcon(t.type); severity = tr("Error: ", "Severity is Task::Error"); } else if (t.type == ProjectExplorer::Task::Warning) { if (icon.isNull()) - icon = t.icon(); + icon = taskWindow->taskTypeIcon(t.type); severity = tr("Warning: ", "Severity is Task::Warning"); } text.append(severity + t.description); From fae7a9fae7ecbd59c0718a1898e17d21eb31c936 Mon Sep 17 00:00:00 2001 From: ck Date: Wed, 26 May 2010 11:43:19 +0200 Subject: [PATCH 15/29] Maemo: Add missing initialization. Task-number: QTCREATORBUG-1461 (part 1) Conflicts: src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp src/plugins/qt4projectmanager/qt-maemo/maemosshthread.h --- .../qt4projectmanager/qt-maemo/maemosshthread.cpp | 10 ++++++++-- .../qt4projectmanager/qt-maemo/maemosshthread.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp index 4b3ee3beb9c..77777bceee9 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp @@ -104,8 +104,7 @@ bool MaemoSshRunner::runInternal() createConnection(); connect(m_connection.data(), SIGNAL(remoteOutput(QByteArray)), this, SLOT(handleRemoteOutput(QByteArray))); - m_endMarkerCount = 0; - m_promptEncountered = false; + initState(); if (!m_connection->start()) return false; if (stopRequested()) @@ -115,6 +114,13 @@ bool MaemoSshRunner::runInternal() return !m_connection->hasError(); } +void MaemoSshRunner::initState() +{ + m_endMarkerCount = 0; + m_promptEncountered = false; + m_potentialEndMarkerPrefix.clear(); +} + void MaemoSshRunner::handleRemoteOutput(const QByteArray &curOutput) { const QByteArray output = m_potentialEndMarkerPrefix + curOutput; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.h b/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.h index a01e1bd7c36..788bc058211 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.h @@ -97,6 +97,7 @@ signals: private: virtual bool runInternal(); Q_SLOT void handleRemoteOutput(const QByteArray &output); + void initState(); static const QByteArray EndMarker; From fd212978acfc1d88d1106b4e9fe2dda73c29774e Mon Sep 17 00:00:00 2001 From: ck Date: Tue, 25 May 2010 16:08:52 +0200 Subject: [PATCH 16/29] Maemo: Fix trailing garbage output at end of remote process. Task-number: QTCREATORBUG-1461 (part 2) Written-by: Denis Mingulov --- src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp index 77777bceee9..caef4b19e3e 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshthread.cpp @@ -165,8 +165,8 @@ void MaemoSshRunner::handleRemoteOutput(const QByteArray &curOutput) charsToEmitCount = -1; } } else { - firstCharToEmit = 0; - charsToEmitCount = endMarkerPos; + firstCharToEmit = m_potentialEndMarkerPrefix.count(); + charsToEmitCount = endMarkerPos - firstCharToEmit; } } else { if (m_endMarkerCount == 0) { From e997f6de135f76b71db51eef38094178a2c5523e Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Tue, 25 May 2010 17:00:21 +0200 Subject: [PATCH 17/29] Fixed rewriter bug for subsequent reparent-in-out actions. --- .../designercore/model/modeltotextmerger.cpp | 2 +- .../designercore/model/rewriteaction.h | 51 +++++++------ .../model/rewriteactioncompressor.cpp | 74 ++++++++++++------- .../model/rewriteactioncompressor.h | 3 +- .../qml/qmldesigner/coretests/testcore.cpp | 67 +++++++++++++++++ .../auto/qml/qmldesigner/coretests/testcore.h | 2 +- .../coretests/testrewriterview.cpp | 14 ++-- 7 files changed, 153 insertions(+), 60 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp index c4e10dbce08..85922826928 100644 --- a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp @@ -149,7 +149,7 @@ void ModelToTextMerger::removeImport(const Import &import) void ModelToTextMerger::nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) { if (isInHierarchy(oldPropertyParent) && isInHierarchy(newPropertyParent)) { // the node is moved - schedule(new ReparentNodeRewriteAction(node, newPropertyParent, propertyType(newPropertyParent))); + schedule(new ReparentNodeRewriteAction(node, oldPropertyParent.parentModelNode(), newPropertyParent, propertyType(newPropertyParent))); } else if (isInHierarchy(oldPropertyParent) && !isInHierarchy(newPropertyParent)) { // the node is removed from hierarchy if (oldPropertyParent.isNodeProperty()) { // ignore, the subsequent remove property will take care of all diff --git a/src/plugins/qmldesigner/designercore/model/rewriteaction.h b/src/plugins/qmldesigner/designercore/model/rewriteaction.h index fe33fa8c877..28fd8af451e 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriteaction.h +++ b/src/plugins/qmldesigner/designercore/model/rewriteaction.h @@ -55,16 +55,16 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore) = 0; virtual QString info() const = 0; - virtual AddImportRewriteAction const *asAddImportRewriteAction() const { return 0; } - virtual AddPropertyRewriteAction const *asAddPropertyRewriteAction() const { return 0; } - virtual ChangeIdRewriteAction const *asChangeIdRewriteAction() const { return 0; } - virtual ChangePropertyRewriteAction const *asChangePropertyRewriteAction() const { return 0; } - virtual ChangeTypeRewriteAction const *asChangeTypeRewriteAction() const { return 0; } - virtual RemoveImportRewriteAction const * asRemoveImportRewriteAction() const { return 0; } - virtual RemoveNodeRewriteAction const *asRemoveNodeRewriteAction() const { return 0; } - virtual RemovePropertyRewriteAction const *asRemovePropertyRewriteAction() const { return 0; } - virtual ReparentNodeRewriteAction const *asReparentNodeRewriteAction() const { return 0; } - virtual MoveNodeRewriteAction const *asMoveNodeRewriteAction() const { return 0; } + virtual AddImportRewriteAction *asAddImportRewriteAction() { return 0; } + virtual AddPropertyRewriteAction *asAddPropertyRewriteAction() { return 0; } + virtual ChangeIdRewriteAction *asChangeIdRewriteAction() { return 0; } + virtual ChangePropertyRewriteAction *asChangePropertyRewriteAction() { return 0; } + virtual ChangeTypeRewriteAction *asChangeTypeRewriteAction() { return 0; } + virtual RemoveImportRewriteAction * asRemoveImportRewriteAction() { return 0; } + virtual RemoveNodeRewriteAction *asRemoveNodeRewriteAction() { return 0; } + virtual RemovePropertyRewriteAction *asRemovePropertyRewriteAction() { return 0; } + virtual ReparentNodeRewriteAction *asReparentNodeRewriteAction() { return 0; } + virtual MoveNodeRewriteAction *asMoveNodeRewriteAction() { return 0; } protected: RewriteAction() @@ -85,7 +85,7 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual AddPropertyRewriteAction const *asAddPropertyRewriteAction() const { return this; } + virtual AddPropertyRewriteAction *asAddPropertyRewriteAction() { return this; } AbstractProperty property() const { return m_property; } @@ -116,7 +116,7 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual ChangeIdRewriteAction const *asChangeIdRewriteAction() const { return this; } + virtual ChangeIdRewriteAction *asChangeIdRewriteAction() { return this; } ModelNode node() const { return m_node; } @@ -137,7 +137,7 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual ChangePropertyRewriteAction const *asChangePropertyRewriteAction() const { return this; } + virtual ChangePropertyRewriteAction *asChangePropertyRewriteAction() { return this; } AbstractProperty property() const { return m_property; } @@ -168,7 +168,7 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual ChangeTypeRewriteAction const *asChangeTypeRewriteAction() const { return this; } + virtual ChangeTypeRewriteAction *asChangeTypeRewriteAction() { return this; } ModelNode node() const { return m_node; } @@ -187,7 +187,7 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual RemoveNodeRewriteAction const *asRemoveNodeRewriteAction() const { return this; } + virtual RemoveNodeRewriteAction *asRemoveNodeRewriteAction() { return this; } ModelNode node() const { return m_node; } @@ -206,7 +206,7 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual RemovePropertyRewriteAction const *asRemovePropertyRewriteAction() const { return this; } + virtual RemovePropertyRewriteAction *asRemovePropertyRewriteAction() { return this; } AbstractProperty property() const { return m_property; } @@ -218,18 +218,24 @@ private: class ReparentNodeRewriteAction: public RewriteAction { public: - ReparentNodeRewriteAction(const ModelNode &node, const AbstractProperty &targetProperty, QmlDesigner::QmlRefactoring::PropertyType propertyType): - m_node(node), m_targetProperty(targetProperty), m_propertyType(propertyType) + ReparentNodeRewriteAction(const ModelNode &node, const ModelNode &oldParent, const AbstractProperty &targetProperty, QmlDesigner::QmlRefactoring::PropertyType propertyType): + m_node(node), m_oldParent(oldParent), m_targetProperty(targetProperty), m_propertyType(propertyType) {} virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual ReparentNodeRewriteAction const *asReparentNodeRewriteAction() const { return this; } + virtual ReparentNodeRewriteAction *asReparentNodeRewriteAction() { return this; } ModelNode reparentedNode() const { return m_node; } + ModelNode oldParent() const + { return m_oldParent; } + + void setOldParent(const ModelNode &oldParent) + { m_oldParent = oldParent; } + AbstractProperty targetProperty() const { return m_targetProperty; } @@ -238,6 +244,7 @@ public: private: ModelNode m_node; + ModelNode m_oldParent; AbstractProperty m_targetProperty; QmlDesigner::QmlRefactoring::PropertyType m_propertyType; }; @@ -252,7 +259,7 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual MoveNodeRewriteAction const *asMoveNodeRewriteAction() const { return this; } + virtual MoveNodeRewriteAction *asMoveNodeRewriteAction() { return this; } private: ModelNode m_movingNode; @@ -269,7 +276,7 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual AddImportRewriteAction const *asAddImportRewriteAction() const { return this; } + virtual AddImportRewriteAction *asAddImportRewriteAction() { return this; } Import import() const { return m_import; } @@ -287,7 +294,7 @@ public: virtual bool execute(QmlDesigner::QmlRefactoring &refactoring, ModelNodePositionStorage &positionStore); virtual QString info() const; - virtual RemoveImportRewriteAction const *asRemoveImportRewriteAction() const { return this; } + virtual RemoveImportRewriteAction *asRemoveImportRewriteAction() { return this; } Import import() const { return m_import; } diff --git a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp index 1fdcafda594..b2af209ae5a 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp @@ -57,7 +57,8 @@ static bool nodeOrParentInSet(const ModelNode &node, const QSet &node void RewriteActionCompressor::operator()(QList &actions) const { compressImports(actions); - compressReparentActions(actions); + compressRereparentActions(actions); + compressReparentIntoSameParentActions(actions); compressPropertyActions(actions); compressAddEditRemoveNodeActions(actions); compressAddEditActions(actions); @@ -74,7 +75,7 @@ void RewriteActionCompressor::compressImports(QList &actions) c while (iter.hasPrevious()) { RewriteAction *action = iter.previous(); - if (RemoveImportRewriteAction const *removeImportAction = action->asRemoveImportRewriteAction()) { + if (RemoveImportRewriteAction *removeImportAction = action->asRemoveImportRewriteAction()) { const Import import = removeImportAction->import(); if (removedImports.contains(import)) { remove(iter); @@ -86,7 +87,7 @@ void RewriteActionCompressor::compressImports(QList &actions) c } else { removedImports.insert(import, action); } - } else if (AddImportRewriteAction const *addImportAction = action->asAddImportRewriteAction()) { + } else if (AddImportRewriteAction *addImportAction = action->asAddImportRewriteAction()) { const Import import = addImportAction->import(); if (RewriteAction *duplicateAction = addedImports.value(import, 0)) { actions.removeOne(duplicateAction); @@ -105,27 +106,44 @@ void RewriteActionCompressor::compressImports(QList &actions) c } } -void RewriteActionCompressor::compressReparentActions(QList &actions) const +void RewriteActionCompressor::compressRereparentActions(QList &actions) const { - QSet reparentedNodes; + QMap reparentedNodes; QMutableListIterator iter(actions); iter.toBack(); while (iter.hasPrevious()) { RewriteAction *action = iter.previous(); - if (ReparentNodeRewriteAction const *reparentAction = action->asReparentNodeRewriteAction()) { + if (ReparentNodeRewriteAction *reparentAction = action->asReparentNodeRewriteAction()) { const ModelNode reparentedNode = reparentAction->reparentedNode(); - if (reparentedNodes.contains(reparentedNode)) { + if (ReparentNodeRewriteAction *otherAction = reparentedNodes.value(reparentedNode, 0)) { + otherAction->setOldParent(reparentAction->oldParent()); remove(iter); } else { - reparentedNodes.insert(reparentedNode); + reparentedNodes.insert(reparentedNode, reparentAction); } } } } +void RewriteActionCompressor::compressReparentIntoSameParentActions(QList &actions) const +{ + QMutableListIterator iter(actions); + iter.toBack(); + while (iter.hasPrevious()) { + RewriteAction *action = iter.previous(); + + if (ReparentNodeRewriteAction *reparentAction = action->asReparentNodeRewriteAction()) { + const ModelNode targetNode = reparentAction->targetProperty().parentModelNode(); + const ModelNode oldParent = reparentAction->oldParent(); + if (targetNode == oldParent) + remove(iter); + } + } +} + void RewriteActionCompressor::compressAddEditRemoveNodeActions(QList &actions) const { QHash removedNodes; @@ -136,7 +154,7 @@ void RewriteActionCompressor::compressAddEditRemoveNodeActions(QListasRemoveNodeRewriteAction()) { + if (RemoveNodeRewriteAction *removeNodeAction = action->asRemoveNodeRewriteAction()) { const ModelNode modelNode = removeNodeAction->node(); if (removedNodes.contains(modelNode)) @@ -160,18 +178,18 @@ void RewriteActionCompressor::compressAddEditRemoveNodeActions(QListasRemovePropertyRewriteAction()) { + } else if (RemovePropertyRewriteAction *removePropertyAction = action->asRemovePropertyRewriteAction()) { const AbstractProperty property = removePropertyAction->property(); if (removedNodes.contains(property.parentModelNode())) remove(iter); - } else if (ChangeIdRewriteAction const *changeIdAction = action->asChangeIdRewriteAction()) { + } else if (ChangeIdRewriteAction *changeIdAction = action->asChangeIdRewriteAction()) { if (removedNodes.contains(changeIdAction->node())) remove(iter); - } else if (ChangeTypeRewriteAction const *changeTypeAction = action->asChangeTypeRewriteAction()) { + } else if (ChangeTypeRewriteAction *changeTypeAction = action->asChangeTypeRewriteAction()) { if (removedNodes.contains(changeTypeAction->node())) remove(iter); - } else if (ReparentNodeRewriteAction const *reparentAction = action->asReparentNodeRewriteAction()) { + } else if (ReparentNodeRewriteAction *reparentAction = action->asReparentNodeRewriteAction()) { if (removedNodes.contains(reparentAction->reparentedNode())) remove(iter); } @@ -186,7 +204,7 @@ void RewriteActionCompressor::compressAddEditRemoveNodeActions(QList &actions) const { QHash removedProperties; - QHash changedProperties; + QHash changedProperties; QSet addedProperties; QMutableListIterator iter(actions); @@ -194,9 +212,9 @@ void RewriteActionCompressor::compressPropertyActions(QList &ac while (iter.hasPrevious()) { RewriteAction *action = iter.previous(); - if (RemovePropertyRewriteAction const *removeAction = action->asRemovePropertyRewriteAction()) { + if (RemovePropertyRewriteAction *removeAction = action->asRemovePropertyRewriteAction()) { removedProperties.insert(removeAction->property(), action); - } else if (ChangePropertyRewriteAction const *changeAction = action->asChangePropertyRewriteAction()) { + } else if (ChangePropertyRewriteAction *changeAction = action->asChangePropertyRewriteAction()) { const AbstractProperty property = changeAction->property(); if (removedProperties.contains(property)) { @@ -207,7 +225,7 @@ void RewriteActionCompressor::compressPropertyActions(QList &ac } else { changedProperties.insert(property, changeAction); } - } else if (AddPropertyRewriteAction const *addAction = action->asAddPropertyRewriteAction()) { + } else if (AddPropertyRewriteAction *addAction = action->asAddPropertyRewriteAction()) { const AbstractProperty property = addAction->property(); if (RewriteAction *removeAction = removedProperties.value(property, 0)) { @@ -238,10 +256,10 @@ void RewriteActionCompressor::compressAddEditActions(QList &act AbstractProperty property; ModelNode containedNode; - if (AddPropertyRewriteAction const *addAction = action->asAddPropertyRewriteAction()) { + if (AddPropertyRewriteAction *addAction = action->asAddPropertyRewriteAction()) { property = addAction->property(); containedNode = addAction->containedModelNode(); - } else if (ChangePropertyRewriteAction const *changeAction = action->asChangePropertyRewriteAction()) { + } else if (ChangePropertyRewriteAction *changeAction = action->asChangePropertyRewriteAction()) { property = changeAction->property(); containedNode = changeAction->containedModelNode(); } @@ -260,11 +278,11 @@ void RewriteActionCompressor::compressAddEditActions(QList &act addedNodes.insert(containedNode); dirtyActions.insert(action); } - } else if (ChangeIdRewriteAction const *changeIdAction = action->asChangeIdRewriteAction()) { + } else if (ChangeIdRewriteAction *changeIdAction = action->asChangeIdRewriteAction()) { if (nodeOrParentInSet(changeIdAction->node(), addedNodes)) { remove(iter); } - } else if (ChangeTypeRewriteAction const *changeTypeAction = action->asChangeTypeRewriteAction()) { + } else if (ChangeTypeRewriteAction *changeTypeAction = action->asChangeTypeRewriteAction()) { if (nodeOrParentInSet(changeTypeAction->node(), addedNodes)) { remove(iter); } @@ -274,12 +292,12 @@ void RewriteActionCompressor::compressAddEditActions(QList &act QmlTextGenerator gen(m_propertyOrder); foreach (RewriteAction *action, dirtyActions) { RewriteAction *newAction = 0; - if (AddPropertyRewriteAction const *addAction = action->asAddPropertyRewriteAction()) { + if (AddPropertyRewriteAction *addAction = action->asAddPropertyRewriteAction()) { newAction = new AddPropertyRewriteAction(addAction->property(), gen(addAction->containedModelNode()), addAction->propertyType(), addAction->containedModelNode()); - } else if (ChangePropertyRewriteAction const *changeAction = action->asChangePropertyRewriteAction()) { + } else if (ChangePropertyRewriteAction *changeAction = action->asChangePropertyRewriteAction()) { newAction = new ChangePropertyRewriteAction(changeAction->property(), gen(changeAction->containedModelNode()), changeAction->propertyType(), @@ -304,9 +322,9 @@ void RewriteActionCompressor::compressAddReparentActions(QList if (action->asAddPropertyRewriteAction() || action->asChangePropertyRewriteAction()) { ModelNode containedNode; - if (AddPropertyRewriteAction const *addAction = action->asAddPropertyRewriteAction()) { + if (AddPropertyRewriteAction *addAction = action->asAddPropertyRewriteAction()) { containedNode = addAction->containedModelNode(); - } else if (ChangePropertyRewriteAction const *changeAction = action->asChangePropertyRewriteAction()) { + } else if (ChangePropertyRewriteAction *changeAction = action->asChangePropertyRewriteAction()) { containedNode = changeAction->containedModelNode(); } @@ -314,18 +332,18 @@ void RewriteActionCompressor::compressAddReparentActions(QList continue; addedNodes.insert(containedNode, action); - } else if (ReparentNodeRewriteAction const *reparentAction = action->asReparentNodeRewriteAction()) { + } else if (ReparentNodeRewriteAction *reparentAction = action->asReparentNodeRewriteAction()) { if (addedNodes.contains(reparentAction->reparentedNode())) { RewriteAction *previousAction = addedNodes[reparentAction->reparentedNode()]; actions.removeOne(previousAction); RewriteAction *replacementAction = 0; - if (AddPropertyRewriteAction const *addAction = previousAction->asAddPropertyRewriteAction()) { + if (AddPropertyRewriteAction *addAction = previousAction->asAddPropertyRewriteAction()) { replacementAction = new AddPropertyRewriteAction(reparentAction->targetProperty(), addAction->valueText(), reparentAction->propertyType(), addAction->containedModelNode()); - } else if (ChangePropertyRewriteAction const *changeAction = previousAction->asChangePropertyRewriteAction()) { + } else if (ChangePropertyRewriteAction *changeAction = previousAction->asChangePropertyRewriteAction()) { replacementAction = new AddPropertyRewriteAction(reparentAction->targetProperty(), changeAction->valueText(), reparentAction->propertyType(), diff --git a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.h b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.h index 18d99a390e7..84aaecdadb7 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.h +++ b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.h @@ -47,7 +47,8 @@ public: private: void compressImports(QList &actions) const; - void compressReparentActions(QList &actions) const; + void compressRereparentActions(QList &actions) const; + void compressReparentIntoSameParentActions(QList &actions) const; void compressAddEditRemoveNodeActions(QList &actions) const; void compressPropertyActions(QList &actions) const; void compressAddEditActions(QList &actions) const; diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp index 43521af494d..eaeeb0d2e2f 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp @@ -700,6 +700,73 @@ void TestCore::testRewriterPreserveOrder() } } +void TestCore::testRewriterActionCompression() +{ + const QLatin1String qmlString("\n" + "import Qt 4.7\n" + "\n" + "Rectangle {\n" + " id: root\n" + " Rectangle {\n" + " id: rect1\n" + " x: 10\n" + " y: 10\n" + " }\n" + " Rectangle {\n" + " id: rect2\n" + " x: 10\n" + " y: 10\n" + " }\n" + "}\n"); + + QPlainTextEdit textEdit; + textEdit.setPlainText(qmlString); + NotIndentingTextEditModifier modifier1(&textEdit); + + QScopedPointer model1(Model::create("Qt/Rectangle")); + + QScopedPointer testRewriterView(new TestRewriterView()); + testRewriterView->setTextModifier(&modifier1); + model1->attachView(testRewriterView.data()); + + QVERIFY(testRewriterView->errors().isEmpty()); + + ModelNode rootModelNode = testRewriterView->rootModelNode(); + ModelNode rect1 = rootModelNode.property(QLatin1String("data")).toNodeListProperty().toModelNodeList().at(0); + ModelNode rect2 = rootModelNode.property(QLatin1String("data")).toNodeListProperty().toModelNodeList().at(1); + + QVERIFY(rect1.isValid()); + QVERIFY(rect2.isValid()); + + RewriterTransaction transaction = testRewriterView->beginRewriterTransaction(); + rect1.nodeListProperty(QLatin1String("data")).reparentHere(rect2); + rect2.variantProperty(QLatin1String("x")).setValue(1.0); + rect2.variantProperty(QLatin1String("y")).setValue(1.0); + + rootModelNode.nodeListProperty(QLatin1String("data")).reparentHere(rect2); + rect2.variantProperty(QLatin1String("x")).setValue(9.0); + rect2.variantProperty(QLatin1String("y")).setValue(9.0); + transaction.commit(); + + const QLatin1String expected("\n" + "import Qt 4.7\n" + "\n" + "Rectangle {\n" + " id: root\n" + " Rectangle {\n" + " id: rect1\n" + " x: 10\n" + " y: 10\n" + " }\n" + " Rectangle {\n" + " id: rect2\n" + " x: 9\n" + " y: 9\n" + " }\n" + "}\n"); + QCOMPARE(textEdit.toPlainText(), expected); +} + void TestCore::testRewriterForGradientMagic() { const QLatin1String qmlString("\n" diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.h b/tests/auto/qml/qmldesigner/coretests/testcore.h index 5bfd5e9320c..f3cbc8ebe8e 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.h +++ b/tests/auto/qml/qmldesigner/coretests/testcore.h @@ -127,7 +127,7 @@ private slots: void testRewriterDynamicProperties(); void testRewriterGroupedProperties(); void testRewriterPreserveOrder(); - + void testRewriterActionCompression(); // // unit tests QmlModelNodeFacade/QmlModelState diff --git a/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp b/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp index 7b340f0e09d..b12c164a6de 100644 --- a/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testrewriterview.cpp @@ -37,8 +37,8 @@ using namespace QmlDesigner::Internal; bool TestModelToTextMerger::isNodeScheduledForRemoval(const ModelNode &node) const { - foreach (const RewriteAction *action, scheduledRewriteActions()) { - if (RemoveNodeRewriteAction const *removeAction = action->asRemoveNodeRewriteAction()) { + foreach (RewriteAction *action, scheduledRewriteActions()) { + if (RemoveNodeRewriteAction *removeAction = action->asRemoveNodeRewriteAction()) { if (removeAction->node() == node) return true; } @@ -49,14 +49,14 @@ bool TestModelToTextMerger::isNodeScheduledForRemoval(const ModelNode &node) con bool TestModelToTextMerger::isNodeScheduledForAddition(const ModelNode &node) const { - foreach (const RewriteAction *action, scheduledRewriteActions()) { - if (AddPropertyRewriteAction const *addPropertyAction = action->asAddPropertyRewriteAction()) { + foreach (RewriteAction *action, scheduledRewriteActions()) { + if (AddPropertyRewriteAction *addPropertyAction = action->asAddPropertyRewriteAction()) { const AbstractProperty property = addPropertyAction->property(); if (property.isNodeProperty() && property.toNodeProperty().modelNode() == node) return true; else if (property.isNodeListProperty() && property.toNodeListProperty().toModelNodeList().contains(node)) return true; - } else if (ChangePropertyRewriteAction const *changePropertyAction = action->asChangePropertyRewriteAction()) { + } else if (ChangePropertyRewriteAction *changePropertyAction = action->asChangePropertyRewriteAction()) { const AbstractProperty property = changePropertyAction->property(); if (property.isNodeProperty() && property.toNodeProperty().modelNode() == node) return true; @@ -71,8 +71,8 @@ bool TestModelToTextMerger::isNodeScheduledForAddition(const ModelNode &node) co VariantProperty TestModelToTextMerger::findAddedVariantProperty(const VariantProperty &property) const { - foreach (const RewriteAction *action, scheduledRewriteActions()) { - if (AddPropertyRewriteAction const * addPropertyAction = action->asAddPropertyRewriteAction()) { + foreach (RewriteAction *action, scheduledRewriteActions()) { + if (AddPropertyRewriteAction *addPropertyAction = action->asAddPropertyRewriteAction()) { const AbstractProperty candidate = addPropertyAction->property(); if (property.isVariantProperty() && property.toVariantProperty() == property) From 79cbc07b29eab23dc148ae2ba0173dd26296ed87 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Tue, 25 May 2010 17:32:39 +0200 Subject: [PATCH 18/29] Fixed superfluous (and erroneous) semi-colon insertion. Bug: BAUHAUS-674 --- .../designercore/filemanager/addpropertyvisitor.cpp | 4 ++-- .../qmldesigner/designercore/filemanager/addpropertyvisitor.h | 2 +- .../designercore/model/rewriteactioncompressor.cpp | 2 +- tests/auto/qml/qmldesigner/coretests/testcore.cpp | 2 -- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp index 52687f34f9c..d2b1fc81fbe 100644 --- a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp +++ b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.cpp @@ -112,12 +112,12 @@ void AddPropertyVisitor::addInMembers(QmlJS::AST::UiObjectInitializer *initializ if (isOneLiner) { if (insertAfter == 0) { // we're inserting after an lbrace if (initializer->members) { // we're inserting before a member (and not the rbrace) - needsTrailingSemicolon = true; + needsTrailingSemicolon = m_propertyType == QmlRefactoring::ScriptBinding; } } else { // we're inserting after a member, not after the lbrace if (endOfPreviousMember.isValid()) { // there already is a semicolon after the previous member if (insertAfter->next && insertAfter->next->member) { // and the after us there is a member, not an rbrace, so: - needsTrailingSemicolon = true; + needsTrailingSemicolon = m_propertyType == QmlRefactoring::ScriptBinding; } } else { // there is no semicolon after the previous member (probably because there is an rbrace after us/it, so: needsPreceedingSemicolon = true; diff --git a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.h b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.h index d82bbcd60a4..5cb454da1d9 100644 --- a/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.h +++ b/src/plugins/qmldesigner/designercore/filemanager/addpropertyvisitor.h @@ -58,7 +58,7 @@ private: quint32 m_parentLocation; QString m_name; QString m_value; - QmlDesigner::QmlRefactoring::PropertyType m_propertyType; + QmlRefactoring::PropertyType m_propertyType; QStringList m_propertyOrder; }; diff --git a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp index b2af209ae5a..d3e52f12731 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp @@ -108,7 +108,7 @@ void RewriteActionCompressor::compressImports(QList &actions) c void RewriteActionCompressor::compressRereparentActions(QList &actions) const { - QMap reparentedNodes; + QHash reparentedNodes; QMutableListIterator iter(actions); iter.toBack(); diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp index eaeeb0d2e2f..f980c55f1f6 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp @@ -804,8 +804,6 @@ void TestCore::testRewriterForGradientMagic() " }\n" "}"); - QSKIP("See BAUHAUS-674", SkipAll); - QPlainTextEdit textEdit; textEdit.setPlainText(qmlString); NotIndentingTextEditModifier modifier(&textEdit); From 77bd9e299629056edf6807a293619e63933dc958 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 26 May 2010 12:41:24 +0200 Subject: [PATCH 19/29] Fixed compression bugs in text refactoring. Task-number: BAUHAUS-729, BAUHAUS-731 --- .../designercore/model/modeltotextmerger.cpp | 34 ++++-- .../designercore/model/modeltotextmerger.h | 2 +- .../model/rewriteactioncompressor.cpp | 100 +++++++++++------- .../model/rewriteactioncompressor.h | 2 - .../qml/qmldesigner/coretests/testcore.cpp | 4 - 5 files changed, 90 insertions(+), 52 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp index 85922826928..2afdaec7d19 100644 --- a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp @@ -101,7 +101,7 @@ void ModelToTextMerger::propertiesChanged(const QList& propert schedule(new AddPropertyRewriteAction(property, propertyTextValue, - propertyType(property), + propertyType(property, propertyTextValue), containedModelNode)); break; @@ -111,7 +111,7 @@ void ModelToTextMerger::propertiesChanged(const QList& propert schedule(new ChangePropertyRewriteAction(property, propertyTextValue, - propertyType(property), + propertyType(property, propertyTextValue), containedModelNode)); break; @@ -149,7 +149,10 @@ void ModelToTextMerger::removeImport(const Import &import) void ModelToTextMerger::nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) { if (isInHierarchy(oldPropertyParent) && isInHierarchy(newPropertyParent)) { // the node is moved - schedule(new ReparentNodeRewriteAction(node, oldPropertyParent.parentModelNode(), newPropertyParent, propertyType(newPropertyParent))); + schedule(new ReparentNodeRewriteAction(node, + oldPropertyParent.parentModelNode(), + newPropertyParent, + propertyType(newPropertyParent))); } else if (isInHierarchy(oldPropertyParent) && !isInHierarchy(newPropertyParent)) { // the node is removed from hierarchy if (oldPropertyParent.isNodeProperty()) { // ignore, the subsequent remove property will take care of all @@ -165,11 +168,17 @@ void ModelToTextMerger::nodeReparented(const ModelNode &node, const NodeAbstract } else if (!isInHierarchy(oldPropertyParent) && isInHierarchy(newPropertyParent)) { // the node is inserted into to hierarchy switch (propertyChange) { case AbstractView::PropertiesAdded: - schedule(new AddPropertyRewriteAction(newPropertyParent, QmlTextGenerator(getPropertyOrder())(node), propertyType(newPropertyParent), node)); + schedule(new AddPropertyRewriteAction(newPropertyParent, + QmlTextGenerator(getPropertyOrder())(node), + propertyType(newPropertyParent), + node)); break; case AbstractView::NoAdditionalChanges: - schedule(new ChangePropertyRewriteAction(newPropertyParent, QmlTextGenerator(getPropertyOrder())(node), propertyType(newPropertyParent), node)); + schedule(new ChangePropertyRewriteAction(newPropertyParent, + QmlTextGenerator(getPropertyOrder())(node), + propertyType(newPropertyParent), + node)); break; case AbstractView::EmptyPropertiesRemoved: @@ -307,11 +316,18 @@ void ModelToTextMerger::schedule(RewriteAction *action) m_rewriteActions.append(action); } -QmlDesigner::QmlRefactoring::PropertyType ModelToTextMerger::propertyType(const AbstractProperty &property) +QmlDesigner::QmlRefactoring::PropertyType ModelToTextMerger::propertyType(const AbstractProperty &property, const QString &textValue) { - if (property.isBindingProperty()) - return QmlDesigner::QmlRefactoring::ObjectBinding; - else if (property.isNodeListProperty()) + if (property.isBindingProperty()) { + QString val = textValue.trimmed(); + if (val.isEmpty()) + return QmlDesigner::QmlRefactoring::ObjectBinding; + const QChar lastChar = val.at(val.size() - 1); + if (lastChar == '}' || lastChar == ';') + return QmlDesigner::QmlRefactoring::ObjectBinding; + else + return QmlDesigner::QmlRefactoring::ScriptBinding; + } else if (property.isNodeListProperty()) return QmlDesigner::QmlRefactoring::ArrayBinding; else if (property.isNodeProperty()) return QmlDesigner::QmlRefactoring::ObjectBinding; diff --git a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.h b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.h index 2c71a0c5824..9af8f390bd0 100644 --- a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.h +++ b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.h @@ -89,7 +89,7 @@ protected: QList scheduledRewriteActions() const { return m_rewriteActions; } - static QmlDesigner::QmlRefactoring::PropertyType propertyType(const AbstractProperty &property); + static QmlDesigner::QmlRefactoring::PropertyType propertyType(const AbstractProperty &property, const QString &textValue = QString()); static QStringList getPropertyOrder(); static bool isInHierarchy(const AbstractProperty &property); diff --git a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp index d3e52f12731..9431545a7f7 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.cpp @@ -67,6 +67,7 @@ void RewriteActionCompressor::operator()(QList &actions) const void RewriteActionCompressor::compressImports(QList &actions) const { + QList actionsToRemove; QHash addedImports; QHash removedImports; @@ -78,36 +79,42 @@ void RewriteActionCompressor::compressImports(QList &actions) c if (RemoveImportRewriteAction *removeImportAction = action->asRemoveImportRewriteAction()) { const Import import = removeImportAction->import(); if (removedImports.contains(import)) { - remove(iter); + actionsToRemove.append(action); } else if (RewriteAction *addImportAction = addedImports.value(import, 0)) { - actions.removeOne(addImportAction); + actionsToRemove.append(action); + actionsToRemove.append(addImportAction); addedImports.remove(import); delete addImportAction; - remove(iter); } else { removedImports.insert(import, action); } } else if (AddImportRewriteAction *addImportAction = action->asAddImportRewriteAction()) { const Import import = addImportAction->import(); if (RewriteAction *duplicateAction = addedImports.value(import, 0)) { - actions.removeOne(duplicateAction); + actionsToRemove.append(duplicateAction); addedImports.remove(import); delete duplicateAction; addedImports.insert(import, action); } else if (RewriteAction *removeAction = removedImports.value(import, 0)) { - actions.removeOne(removeAction); + actionsToRemove.append(action); + actionsToRemove.append(removeAction); removedImports.remove(import); delete removeAction; - remove(iter); } else { addedImports.insert(import, action); } } } + + foreach (RewriteAction *action, actionsToRemove) { + actions.removeOne(action); + delete action; + } } void RewriteActionCompressor::compressRereparentActions(QList &actions) const { + QList actionsToRemove; QHash reparentedNodes; QMutableListIterator iter(actions); @@ -120,16 +127,22 @@ void RewriteActionCompressor::compressRereparentActions(QList & if (ReparentNodeRewriteAction *otherAction = reparentedNodes.value(reparentedNode, 0)) { otherAction->setOldParent(reparentAction->oldParent()); - remove(iter); + actionsToRemove.append(action); } else { reparentedNodes.insert(reparentedNode, reparentAction); } } } + + foreach (RewriteAction *action, actionsToRemove) { + actions.removeOne(action); + delete action; + } } void RewriteActionCompressor::compressReparentIntoSameParentActions(QList &actions) const { + QList actionsToRemove; QMutableListIterator iter(actions); iter.toBack(); while (iter.hasPrevious()) { @@ -139,15 +152,20 @@ void RewriteActionCompressor::compressReparentIntoSameParentActions(QListtargetProperty().parentModelNode(); const ModelNode oldParent = reparentAction->oldParent(); if (targetNode == oldParent) - remove(iter); + actionsToRemove.append(action); } } + + foreach (RewriteAction *action, actionsToRemove) { + actions.removeOne(action); + delete action; + } } void RewriteActionCompressor::compressAddEditRemoveNodeActions(QList &actions) const { + QList actionsToRemove; QHash removedNodes; - QSet removeActionsToRemove; QMutableListIterator iter(actions); iter.toBack(); @@ -158,7 +176,7 @@ void RewriteActionCompressor::compressAddEditRemoveNodeActions(QListnode(); if (removedNodes.contains(modelNode)) - remove(iter); + actionsToRemove.append(action); else removedNodes.insert(modelNode, action); } else if (action->asAddPropertyRewriteAction() || action->asChangePropertyRewriteAction()) { @@ -172,30 +190,30 @@ void RewriteActionCompressor::compressAddEditRemoveNodeActions(QListasChangePropertyRewriteAction()->containedModelNode(); } - if (removedNodes.contains(property.parentModelNode())) - remove(iter); - else if (removedNodes.contains(containedModelNode)) { - remove(iter); - removeActionsToRemove.insert(removedNodes[containedModelNode]); + if (removedNodes.contains(property.parentModelNode())) { + actionsToRemove.append(action); + } else if (RewriteAction *removeAction = removedNodes.value(containedModelNode, 0)) { + actionsToRemove.append(action); + actionsToRemove.append(removeAction); } } else if (RemovePropertyRewriteAction *removePropertyAction = action->asRemovePropertyRewriteAction()) { const AbstractProperty property = removePropertyAction->property(); if (removedNodes.contains(property.parentModelNode())) - remove(iter); + actionsToRemove.append(action); } else if (ChangeIdRewriteAction *changeIdAction = action->asChangeIdRewriteAction()) { if (removedNodes.contains(changeIdAction->node())) - remove(iter); + actionsToRemove.append(action); } else if (ChangeTypeRewriteAction *changeTypeAction = action->asChangeTypeRewriteAction()) { if (removedNodes.contains(changeTypeAction->node())) - remove(iter); + actionsToRemove.append(action); } else if (ReparentNodeRewriteAction *reparentAction = action->asReparentNodeRewriteAction()) { if (removedNodes.contains(reparentAction->reparentedNode())) - remove(iter); + actionsToRemove.append(action); } } - foreach (RewriteAction *action, removeActionsToRemove) { + foreach (RewriteAction *action, actionsToRemove) { actions.removeOne(action); delete action; } @@ -203,6 +221,7 @@ void RewriteActionCompressor::compressAddEditRemoveNodeActions(QList &actions) const { + QList actionsToRemove; QHash removedProperties; QHash changedProperties; QSet addedProperties; @@ -218,10 +237,10 @@ void RewriteActionCompressor::compressPropertyActions(QList &ac const AbstractProperty property = changeAction->property(); if (removedProperties.contains(property)) { - remove(iter); + actionsToRemove.append(action); } else if (changedProperties.contains(property)) { if (!property.isValid() || !property.isDefaultProperty()) - remove(iter); + actionsToRemove.append(action); } else { changedProperties.insert(property, changeAction); } @@ -229,10 +248,9 @@ void RewriteActionCompressor::compressPropertyActions(QList &ac const AbstractProperty property = addAction->property(); if (RewriteAction *removeAction = removedProperties.value(property, 0)) { - actions.removeOne(removeAction); + actionsToRemove.append(action); + actionsToRemove.append(removeAction); removedProperties.remove(property); - delete removeAction; - remove(iter); } else { if (changedProperties.contains(property)) changedProperties.remove(property); @@ -241,10 +259,16 @@ void RewriteActionCompressor::compressPropertyActions(QList &ac } } } + + foreach (RewriteAction *action, actionsToRemove){ + actions.removeOne(action); + delete action; + } } void RewriteActionCompressor::compressAddEditActions(QList &actions) const { + QList actionsToRemove; QSet addedNodes; QSet dirtyActions; @@ -265,7 +289,7 @@ void RewriteActionCompressor::compressAddEditActions(QList &act } if (property.isValid() && addedNodes.contains(property.parentModelNode())) { - remove(iter); + actionsToRemove.append(action); continue; } @@ -273,22 +297,27 @@ void RewriteActionCompressor::compressAddEditActions(QList &act continue; if (nodeOrParentInSet(containedNode, addedNodes)) { - remove(iter); + actionsToRemove.append(action); } else { addedNodes.insert(containedNode); dirtyActions.insert(action); } } else if (ChangeIdRewriteAction *changeIdAction = action->asChangeIdRewriteAction()) { if (nodeOrParentInSet(changeIdAction->node(), addedNodes)) { - remove(iter); + actionsToRemove.append(action); } } else if (ChangeTypeRewriteAction *changeTypeAction = action->asChangeTypeRewriteAction()) { if (nodeOrParentInSet(changeTypeAction->node(), addedNodes)) { - remove(iter); + actionsToRemove.append(action); } } } + foreach (RewriteAction *action, actionsToRemove){ + actions.removeOne(action); + delete action; + } + QmlTextGenerator gen(m_propertyOrder); foreach (RewriteAction *action, dirtyActions) { RewriteAction *newAction = 0; @@ -313,6 +342,7 @@ void RewriteActionCompressor::compressAddEditActions(QList &act void RewriteActionCompressor::compressAddReparentActions(QList &actions) const { + QList actionsToRemove; QMap addedNodes; QMutableListIterator iter(actions); @@ -335,7 +365,7 @@ void RewriteActionCompressor::compressAddReparentActions(QList } else if (ReparentNodeRewriteAction *reparentAction = action->asReparentNodeRewriteAction()) { if (addedNodes.contains(reparentAction->reparentedNode())) { RewriteAction *previousAction = addedNodes[reparentAction->reparentedNode()]; - actions.removeOne(previousAction); + actionsToRemove.append(previousAction); RewriteAction *replacementAction = 0; if (AddPropertyRewriteAction *addAction = previousAction->asAddPropertyRewriteAction()) { @@ -351,15 +381,13 @@ void RewriteActionCompressor::compressAddReparentActions(QList } iter.setValue(replacementAction); - delete previousAction; delete action; } } } -} -void RewriteActionCompressor::remove(QMutableListIterator &iter) const -{ - delete iter.value(); - iter.remove(); + foreach (RewriteAction *action, actionsToRemove){ + actions.removeOne(action); + delete action; + } } diff --git a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.h b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.h index 84aaecdadb7..ce0e9eeef07 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.h +++ b/src/plugins/qmldesigner/designercore/model/rewriteactioncompressor.h @@ -54,8 +54,6 @@ private: void compressAddEditActions(QList &actions) const; void compressAddReparentActions(QList &actions) const; - void remove(QMutableListIterator &iter) const; - private: QStringList m_propertyOrder; }; diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp index f980c55f1f6..cdbc5669f12 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp @@ -3364,8 +3364,6 @@ void TestCore::testAnchorsAndRewriting() " }\n" "}"); - QSKIP("See BAUHAUS-729", SkipAll); - QPlainTextEdit textEdit; textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); @@ -3427,8 +3425,6 @@ void TestCore::testAnchorsAndRewritingCenter() " }\n" "}"); - //QSKIP("See BAUHAUS-729", SkipAll); - QPlainTextEdit textEdit; textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); From ce5f0a39ae88cf215fa0654594085e0a91d698b8 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Wed, 26 May 2010 12:48:57 +0200 Subject: [PATCH 20/29] Cache the welcomemode background I now cache the scaled welcomemode background so it feels more responsive when toggeling back and forth between modes. Reviewed-by: joao --- src/plugins/welcome/welcomemode.cpp | 23 +++++++++++++++++++++-- src/plugins/welcome/welcomemode.ui | 6 ------ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/plugins/welcome/welcomemode.cpp b/src/plugins/welcome/welcomemode.cpp index 31ffc19be22..d13ef68e7c0 100644 --- a/src/plugins/welcome/welcomemode.cpp +++ b/src/plugins/welcome/welcomemode.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include @@ -56,6 +57,24 @@ static const char currentPageSettingsKeyC[] = "General/WelcomeTab"; namespace Welcome { +// Helper class introduced to cache the scaled background image +// so we avoid re-scaling for every repaint. +class ImageWidget : public QWidget +{ +public: + ImageWidget(const QPixmap &bg, QWidget *parent) : QWidget(parent), m_bg(bg) {} + void paintEvent(QPaintEvent *e) { + QPainter painter(this); + if (m_stretch.size() != size()) + m_stretch = m_bg.scaled(size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + painter.drawPixmap(rect(), m_stretch); + QWidget::paintEvent(e); + } +private: + QPixmap m_bg; + QPixmap m_stretch; +}; + struct WelcomeModePrivate { typedef QMap ToolButtonWidgetMap; @@ -64,7 +83,7 @@ struct WelcomeModePrivate QScrollArea *m_scrollArea; QWidget *m_widget; - QWidget *m_welcomePage; + ImageWidget *m_welcomePage; ToolButtonWidgetMap buttonMap; QHBoxLayout * buttonLayout; Ui::WelcomeMode ui; @@ -79,7 +98,7 @@ WelcomeMode::WelcomeMode() : l->setMargin(0); l->setSpacing(0); l->addWidget(new Utils::StyledBar(m_d->m_widget)); - m_d->m_welcomePage = new QWidget(m_d->m_widget); + m_d->m_welcomePage = new ImageWidget(QPixmap(":/welcome/images/welcomebg.png"), m_d->m_widget); m_d->ui.setupUi(m_d->m_welcomePage); m_d->ui.helpUsLabel->setAttribute(Qt::WA_LayoutUsesWidgetRect); m_d->ui.feedbackButton->setAttribute(Qt::WA_LayoutUsesWidgetRect); diff --git a/src/plugins/welcome/welcomemode.ui b/src/plugins/welcome/welcomemode.ui index e60f8143ad2..d91c4d02d79 100644 --- a/src/plugins/welcome/welcomemode.ui +++ b/src/plugins/welcome/welcomemode.ui @@ -75,12 +75,6 @@ QToolButton:pressed, QPushButton:pressed{ - - #gradientWidget { - border-image: url(:/welcome/images/welcomebg.png) 0; -} - - 0 From b61e32371f0552c5edb9f10d1c2ce25014bf1470 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 26 May 2010 13:33:33 +0200 Subject: [PATCH 21/29] debugger: fix display of children of objects passed by reference. The value was adjusted to the referenced value but it was not used when dumping the members, basically leading to an empty child list in such cases. --- share/qtcreator/gdbmacros/dumper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index e31b15471c7..2012cef8daa 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1366,7 +1366,8 @@ class Dumper: if len(fields) == 1 and fields[0].name is None: innerType = value.type.target() with Children(self, 1, innerType): - self.putFields(item) + child = Item(value, item.iname, None, item.name) + self.putFields(child) def putFields(self, item, innerType = None): value = item.value From ef5b4b8ec5e2a12f491dd552ef481b511400f3b8 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 26 May 2010 14:35:06 +0200 Subject: [PATCH 22/29] Debugger: Introduce env QTC_DEBUGGER_PYTHON_VERBOSE for verbose python error hunting. Rubber-stamped-by: hjk --- src/plugins/debugger/gdb/pythongdbengine.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/debugger/gdb/pythongdbengine.cpp b/src/plugins/debugger/gdb/pythongdbengine.cpp index 3edf26905ac..e8112c2faa6 100644 --- a/src/plugins/debugger/gdb/pythongdbengine.cpp +++ b/src/plugins/debugger/gdb/pythongdbengine.cpp @@ -81,6 +81,8 @@ void GdbEngine::updateLocalsPython(const QByteArray &varList) options += "fancy,"; if (theDebuggerBoolSetting(AutoDerefPointers)) options += "autoderef,"; + if (!qgetenv("QTC_DEBUGGER_PYTHON_VERBOSE").isEmpty()) + options += "pe,"; if (options.isEmpty()) options += "defaults,"; options.chop(1); From 2630fc2aeda5c220ff978dda1134039943d868ec Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 26 May 2010 14:42:11 +0200 Subject: [PATCH 23/29] QuickDesigner: Fix drag & drop in Navigator on Mac OS X Task-number: BAUHAUS-651 --- .../qmldesigner/components/navigator/navigatortreemodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 94ab253a99a..ad6a973f386 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -43,7 +43,7 @@ NavigatorTreeModel::NavigatorTreeModel(QObject *parent) : QStandardItemModel(parent), m_blockItemChangedSignal(false) { - invisibleRootItem()->setFlags(Qt::NoItemFlags); + invisibleRootItem()->setFlags(Qt::ItemIsDropEnabled); #ifdef _LOCK_ITEMS_ setColumnCount(3); From 34f24e092f8ba8f54e829df29e7e3e38d3da4b07 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 26 May 2010 14:24:36 +0200 Subject: [PATCH 24/29] debugger: add manual test for arguments passed by reference --- tests/manual/gdbdebugger/simple/app.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp index 732e2c862dd..778e8b61f6e 100644 --- a/tests/manual/gdbdebugger/simple/app.cpp +++ b/tests/manual/gdbdebugger/simple/app.cpp @@ -1591,6 +1591,17 @@ int testReference() return a.size() + b.size() + c.size(); } +void testPassByReferenceHelper(Foo &f) +{ + ++f.a; +} + +void testPassByReference() +{ + Foo f(12); + testPassByReferenceHelper(f); +} + int main(int argc, char *argv[]) { testPeekAndPoke3(); @@ -1638,6 +1649,7 @@ int main(int argc, char *argv[]) testStdString(); testStdVector(); + testPassByReference(); testPlugin(); testQList(); testQLinkedList(); From 69c84c9cc31d0c28b6c3f48ca6d12460fa0407a4 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 20 May 2010 11:34:00 +0200 Subject: [PATCH 25/29] debugger: fix QList dumper for large movable objects Doh! (cherry picked from commit df0e1e56258c18c7686d543e35d91d0b47976fab) --- share/qtcreator/gdbmacros/gdbmacros.py | 13 +++++++------ tests/manual/gdbdebugger/simple/app.cpp | 8 ++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py index 9ccc1c54b00..41ae51b5888 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.py +++ b/share/qtcreator/gdbmacros/gdbmacros.py @@ -397,9 +397,9 @@ def qdump__QList(d, item): # in the frontend. # So as first approximation only do the 'isLarge' check: isInternal = innerSize <= d_ptr.type.sizeof and d.isMovableType(innerType) - #warn("INTERNAL: %d" % int(isInternal)) - - p = gdb.Value(array).cast(innerType.pointer()) + begin + dummyType = gdb.lookup_type("void").pointer().pointer() + innerTypePointer = innerType.pointer() + p = gdb.Value(array).cast(dummyType) + begin if innerTypeIsPointer: inner = innerType.target() else: @@ -408,10 +408,11 @@ def qdump__QList(d, item): with Children(d, [size, 2000], inner): for i in d.childRange(): if isInternal: - d.putItem(Item(p.dereference(), item.iname, i)) + pp = p.cast(innerTypePointer).dereference(); + d.putItem(Item(pp, item.iname, i)) else: - pp = p.cast(innerType.pointer().pointer()).dereference() - d.putItem(Item(pp.dereference(), item.iname, i)) + pp = p.cast(innerTypePointer.pointer()).dereference() + d.putItem(Item(pp, item.iname, i)) p += 1 diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp index 778e8b61f6e..464e18b7365 100644 --- a/tests/manual/gdbdebugger/simple/app.cpp +++ b/tests/manual/gdbdebugger/simple/app.cpp @@ -1296,6 +1296,14 @@ void testQVariant2() void testQVariant3() { + QVariantList vl; + vl.append(QVariant(1)); + vl.append(QVariant(2)); + vl.append(QVariant("Some String")); + vl.append(QVariant(21)); + vl.append(QVariant(22)); + vl.append(QVariant("2Some String")); + QList list; list << 1 << 2 << 3; QVariant variant = qVariantFromValue(list); From a45bfdc4e6f037b2f555374e67c6f38cdcedda45 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 26 May 2010 17:41:09 +0200 Subject: [PATCH 26/29] debugger: improve QVariant(QString) dumper (partially cherry picked from commit dd714e9ccb55eb8dc6c9cbdf75944f41f0573514) --- share/qtcreator/gdbmacros/dumper.py | 2 +- share/qtcreator/gdbmacros/gdbmacros.py | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index 2012cef8daa..bfb4604b6ca 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -838,7 +838,7 @@ class FrameCommand(gdb.Command): d.typeformats = typeformats d.formats = formats d.useFancy = useFancy - d.passExceptions = "passexceptions" in options + d.passExceptions = "pe" in options d.autoDerefPointers = "autoderef" in options d.ns = qtNamespace() d.expandedINames = expandedINames diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py index 41ae51b5888..112a0176f0d 100644 --- a/share/qtcreator/gdbmacros/gdbmacros.py +++ b/share/qtcreator/gdbmacros/gdbmacros.py @@ -1453,9 +1453,9 @@ def qdump__QUrl(d, item): def qdumpHelper__QVariant(d, value): - #warn("VARIANT TYPE: %s : " % variantType) data = value["d"]["data"] variantType = int(value["d"]["type"]) + #warn("VARIANT TYPE: %s : " % variantType) val = None inner = "" innert = "" @@ -1597,15 +1597,18 @@ def qdumpHelper__QVariant(d, value): def qdump__QVariant(d, item): val, inner, innert = qdumpHelper__QVariant(d, item.value) + #warn("VARIANT DATA: '%s' '%s' '%s': " % (val, inner, innert)) - if len(inner): - # Build-in types. - #d.putValue("(%s)" % innert) - d.putType("%sQVariant (%s)" % (d.ns, innert)) - d.putNumChild(1) - if d.isExpanded(item): - with Children(d): - d.putItem(Item(val, item.iname, "data", "data")) + if len(inner): + innerType = gdb.lookup_type(inner) + # FIXME: Why "shared"? + if innerType.sizeof > item.value["d"]["data"].type.sizeof: + v = item.value["d"]["data"]["shared"]["ptr"] \ + .cast(innerType.pointer()).dereference() + else: + v = item.value["d"]["data"].cast(innerType) + d.putItemHelper(Item(v, item.iname)) + d.putType("%sQVariant (%s)" % (d.ns, innert), d.currentTypePriority + 1) else: # User types. d_member = item.value["d"] From 7c82944750f22dd8048177287cf3cb36e5e015d4 Mon Sep 17 00:00:00 2001 From: mae Date: Wed, 26 May 2010 19:18:38 +0200 Subject: [PATCH 27/29] Fix qml autocompletion on Enter Only insert necessary newlines Reviewed-by: thorbjorn Task-number: QTCREATORBUG-1476 --- src/plugins/qmljseditor/qmljseditor.cpp | 28 +++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index b0c000cbcf1..0348812557f 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -1225,9 +1225,33 @@ QString QmlJSTextEditor::insertMatchingBrace(const QTextCursor &tc, const QStrin return QString(); } -QString QmlJSTextEditor::insertParagraphSeparator(const QTextCursor &) const +static bool shouldInsertNewline(const QTextCursor &tc) { - return QLatin1String("}\n"); + QTextDocument *doc = tc.document(); + int pos = tc.selectionEnd(); + + // count the number of empty lines. + int newlines = 0; + for (int e = doc->characterCount(); pos != e; ++pos) { + const QChar ch = doc->characterAt(pos); + + if (! ch.isSpace()) + break; + else if (ch == QChar::ParagraphSeparator) + ++newlines; + } + + if (newlines <= 1 && doc->characterAt(pos) != QLatin1Char('}')) + return true; + + return false; +} + +QString QmlJSTextEditor::insertParagraphSeparator(const QTextCursor &tc) const +{ + if (shouldInsertNewline(tc)) + return QLatin1String("}\n"); + return QLatin1String("}"); } void QmlJSTextEditor::forceSemanticRehighlight() From 27cb7ac26ad4d71d613341572974c9be96a75630 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 26 May 2010 19:34:15 +0200 Subject: [PATCH 28/29] remove outdated qt version check all of creator requires qt 4.7 now --- share/qtcreator/translations/translations.pro | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/share/qtcreator/translations/translations.pro b/share/qtcreator/translations/translations.pro index 0c7159690b0..a16da1983d0 100644 --- a/share/qtcreator/translations/translations.pro +++ b/share/qtcreator/translations/translations.pro @@ -17,23 +17,19 @@ TRANSLATIONS = $$prependAll(LANGUAGES, $$PWD/qtcreator_,.ts) MIME_TR_H = $$OUT_PWD/mime_tr.h CUSTOMWIZARD_TR_H = $$OUT_PWD/customwizard_tr.h -contains(QT_VERSION, ^4\.[0-6]\..*) { - ts.commands = @echo This Qt version is too old for the ts target. Need Qt 4.7+. -} else { - for(dir, $$list($$files($$IDE_SOURCE_TREE/src/plugins/*))):MIMETYPES_FILES += $$files($$dir/*.mimetypes.xml) - MIMETYPES_FILES = \"$$join(MIMETYPES_FILES, \", \")\" +for(dir, $$list($$files($$IDE_SOURCE_TREE/src/plugins/*))):MIMETYPES_FILES += $$files($$dir/*.mimetypes.xml) +MIMETYPES_FILES = \"$$join(MIMETYPES_FILES, \", \")\" - for(dir, $$list($$files($$IDE_SOURCE_TREE/share/qtcreator/templates/wizards/*))):CUSTOMWIZARD_FILES += $$files($$dir/wizard.xml) - CUSTOMWIZARD_FILES = \"$$join(CUSTOMWIZARD_FILES, \", \")\" +for(dir, $$list($$files($$IDE_SOURCE_TREE/share/qtcreator/templates/wizards/*))):CUSTOMWIZARD_FILES += $$files($$dir/wizard.xml) +CUSTOMWIZARD_FILES = \"$$join(CUSTOMWIZARD_FILES, \", \")\" - QMAKE_SUBSTITUTES += extract-mimetypes.xq.in - QMAKE_SUBSTITUTES += extract-customwizards.xq.in - ts.commands += \ - $$XMLPATTERNS -output $$MIME_TR_H $$PWD/extract-mimetypes.xq && \ - $$XMLPATTERNS -output $$CUSTOMWIZARD_TR_H $$PWD/extract-customwizards.xq && \ - (cd $$IDE_SOURCE_TREE && $$LUPDATE src share/qtcreator/qmldesigner $$MIME_TR_H $$CUSTOMWIZARD_TR_H -ts $$TRANSLATIONS) && \ - $$QMAKE_DEL_FILE $$MIME_TR_H -} +QMAKE_SUBSTITUTES += extract-mimetypes.xq.in +QMAKE_SUBSTITUTES += extract-customwizards.xq.in +ts.commands += \ + $$XMLPATTERNS -output $$MIME_TR_H $$PWD/extract-mimetypes.xq && \ + $$XMLPATTERNS -output $$CUSTOMWIZARD_TR_H $$PWD/extract-customwizards.xq && \ + (cd $$IDE_SOURCE_TREE && $$LUPDATE src share/qtcreator/qmldesigner $$MIME_TR_H $$CUSTOMWIZARD_TR_H -ts $$TRANSLATIONS) && \ + $$QMAKE_DEL_FILE $$MIME_TR_H QMAKE_EXTRA_TARGETS += ts TEMPLATE = app From 0b52a873bda41c35ab640deadd6f30a3aa903ac7 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 26 May 2010 19:35:13 +0200 Subject: [PATCH 29/29] escape backslashes (or don't use them at all, resp.) --- doc/doc.pri | 4 ++-- qtcreator.pro | 2 +- src/tools/qtcdebugger/qtcdebugger.pro | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/doc.pri b/doc/doc.pri index 19a040afc4f..b4c8800f634 100644 --- a/doc/doc.pri +++ b/doc/doc.pri @@ -7,8 +7,8 @@ equals(QMAKE_DIR_SEP, /) { # unix, mingw+msys # The lack of spaces in front of the && is necessary! QDOC = set SRCDIR=$$PWD&& set OUTDIR=$$OUT_PWD/doc/html&& $$QDOC_BIN } else { # nmake - QDOC = set SRCDIR=$$PWD $$escape_expand(\n\t) \ - set OUTDIR=$$OUT_PWD/doc/html $$escape_expand(\n\t) \ + QDOC = set SRCDIR=$$PWD $$escape_expand(\\n\\t) \ + set OUTDIR=$$OUT_PWD/doc/html $$escape_expand(\\n\\t) \ $$QDOC_BIN } diff --git a/qtcreator.pro b/qtcreator.pro index d00628a80af..6593c0fd33b 100644 --- a/qtcreator.pro +++ b/qtcreator.pro @@ -1,5 +1,5 @@ #version check qt -contains(QT_VERSION, ^4\.[0-6]\..*) { +contains(QT_VERSION, ^4\\.[0-6]\\..*) { message("Cannot build Qt Creator with Qt version $${QT_VERSION}.") error("Use at least Qt 4.7.") } diff --git a/src/tools/qtcdebugger/qtcdebugger.pro b/src/tools/qtcdebugger/qtcdebugger.pro index ce8e9fdff1c..f7ae016d0cd 100644 --- a/src/tools/qtcdebugger/qtcdebugger.pro +++ b/src/tools/qtcdebugger/qtcdebugger.pro @@ -4,4 +4,4 @@ TARGET = qtcdebugger TEMPLATE = app SOURCES += main.cpp -DESTDIR=..\..\..\bin +DESTDIR=../../../bin