forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/2.3'
Conflicts: qtcreator.pri src/libs/libs.pro src/plugins/debugger/watchwindow.cpp src/plugins/remotelinux/maemopackagecreationstep.h Change-Id: Ic67c46256d0060ee9845b92ef82539f6f8fbe639
This commit is contained in:
@@ -9475,6 +9475,13 @@
|
||||
libraries on devices. Then select the device as the target before you
|
||||
start debugging.
|
||||
|
||||
\section1 Mixed C++/QML Debugging
|
||||
|
||||
You can debug both the C++ and QML parts of your application at the same time:
|
||||
Select the checkboxes for both languages in the \gui{Run Settings}. However,
|
||||
C++ breakpoints will be ignored until the debugger has attached also to the QML
|
||||
engine.
|
||||
|
||||
\section1 Starting QML Debugging
|
||||
|
||||
To start the application, choose \gui {Debug > Start Debugging
|
||||
|
||||
-1
@@ -32,7 +32,6 @@
|
||||
|
||||
import QtQuick 1.0
|
||||
import "custom" as Components
|
||||
import "plugin"
|
||||
|
||||
Item {
|
||||
id: scrollbar
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,57 @@
|
||||
include(../../../qtcreator.pri)
|
||||
|
||||
TEMPLATE = app
|
||||
TARGET = phony_target3
|
||||
CONFIG -= qt separate_debug_info gdb_dwarf_index
|
||||
QT =
|
||||
LIBS =
|
||||
macx:CONFIG -= app_bundle
|
||||
|
||||
isEmpty(vcproj) {
|
||||
QMAKE_LINK = @: IGNORE THIS LINE
|
||||
OBJECTS_DIR =
|
||||
win32:CONFIG -= embed_manifest_exe
|
||||
} else {
|
||||
CONFIG += console
|
||||
PHONY_DEPS = .
|
||||
phony_src.input = PHONY_DEPS
|
||||
phony_src.output = phony.c
|
||||
phony_src.variable_out = GENERATED_SOURCES
|
||||
phony_src.commands = echo int main() { return 0; } > phony.c
|
||||
phony_src.name = CREATE phony.c
|
||||
phony_src.CONFIG += combine
|
||||
QMAKE_EXTRA_COMPILERS += phony_src
|
||||
}
|
||||
|
||||
DATA_FILE_PATTERNS = \
|
||||
$$PWD/*.qml \
|
||||
$$PWD/qmldir \
|
||||
$$PWD/images/* \
|
||||
$$PWD/custom/* \
|
||||
$$PWD/custom/behaviors/* \
|
||||
$$PWD/custom/private/*
|
||||
|
||||
!isEmpty(copydata) {
|
||||
|
||||
for(data_file, DATA_FILE_PATTERNS) {
|
||||
files = $$files($$data_file, false)
|
||||
win32:files ~= s|\\\\|/|g
|
||||
for(file, files):!exists($$file/*):FILES += $$file
|
||||
}
|
||||
|
||||
OTHER_FILES += $$FILES
|
||||
copy2build.input = FILES
|
||||
copy2build.output = $$IDE_LIBRARY_PATH/qtcomponents/${QMAKE_FUNC_FILE_IN_stripSrcDir}
|
||||
isEmpty(vcproj):copy2build.variable_out = PRE_TARGETDEPS
|
||||
win32:copy2build.commands = $$QMAKE_COPY \"${QMAKE_FILE_IN}\" \"${QMAKE_FILE_OUT}\"
|
||||
unix:copy2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
|
||||
copy2build.name = COPY ${QMAKE_FILE_IN}
|
||||
copy2build.CONFIG += no_link
|
||||
QMAKE_EXTRA_COMPILERS += copy2build
|
||||
}
|
||||
|
||||
!macx {
|
||||
qmlfiles.files = $$PWD/*.qml $$PWD/qmldir $$PWD/images $$PWD/custom
|
||||
qmlfiles.path = /lib/qtcreator/qtcomponents
|
||||
INSTALLS += qmlfiles
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ include(doc/doc.pri)
|
||||
TEMPLATE = subdirs
|
||||
CONFIG += ordered
|
||||
|
||||
SUBDIRS = src share
|
||||
SUBDIRS = src share lib/qtcreator/qtcomponents
|
||||
|
||||
OTHER_FILES += dist/copyright_template.txt \
|
||||
dist/changes-1.1.0 \
|
||||
|
||||
@@ -561,8 +561,19 @@ def qdump__QLinkedList(d, item):
|
||||
d.putSubItem(Item(p["t"], item.iname, i))
|
||||
p = p["n"]
|
||||
|
||||
qqLocalesCount = None
|
||||
|
||||
def qdump__QLocale(d, item):
|
||||
# Check for uninitialized 'index' variable. Retrieve size of QLocale data array
|
||||
# from variable in qlocale.cpp (default: 368/Qt 4.8), 368 being 'System'.
|
||||
global qqLocalesCount
|
||||
if qqLocalesCount is None:
|
||||
try:
|
||||
qqLocalesCount = int(value(qtNamespace() + 'locale_data_size'))
|
||||
except:
|
||||
qqLocalesCount = 368
|
||||
index = int(item.value["p"]["index"])
|
||||
check(index >= 0 and index <= qqLocalesCount)
|
||||
d.putStringValue(call(item.value, "name"))
|
||||
d.putNumChild(0)
|
||||
return
|
||||
|
||||
@@ -435,8 +435,12 @@ void ObjectNodeInstance::setPropertyBinding(const QString &name, const QString &
|
||||
if (oldBinding && !hasValidResetBinding(name))
|
||||
oldBinding->destroy();
|
||||
binding->update();
|
||||
if (binding->hasError())
|
||||
if (binding->hasError()) {
|
||||
qDebug() <<" ObjectNodeInstance.setPropertyBinding has Error: " << object() << name << expression << binding->error().toString();
|
||||
if (property.property().userType() == QVariant::String)
|
||||
property.write(QVariant(QString("#%1#").arg(expression)));
|
||||
}
|
||||
|
||||
} else {
|
||||
qWarning() << "ObjectNodeInstance.setPropertyBinding: Cannot set binding for property" << name << ": property is unknown for type";
|
||||
}
|
||||
|
||||
@@ -69,41 +69,6 @@ QWidget {
|
||||
}
|
||||
}
|
||||
|
||||
QWidget { // 1
|
||||
layout: HorizontalLayout {
|
||||
|
||||
Label {
|
||||
text: qsTr("Source size")
|
||||
}
|
||||
|
||||
DoubleSpinBox {
|
||||
text: "W"
|
||||
alignRight: false
|
||||
spacing: 4
|
||||
singleStep: 1;
|
||||
enabled: anchorBackend.hasParent;
|
||||
backendValue: backendValues.sourceSize_width
|
||||
minimum: -2000;
|
||||
maximum: 2000;
|
||||
baseStateFlag: isBaseState;
|
||||
}
|
||||
|
||||
DoubleSpinBox {
|
||||
singleStep: 1;
|
||||
text: "H"
|
||||
alignRight: false
|
||||
spacing: 4
|
||||
backendValue: backendValues.sourceSize_height
|
||||
enabled: anchorBackend.hasParent;
|
||||
minimum: -2000;
|
||||
maximum: 2000;
|
||||
baseStateFlag: isBaseState;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
} //QWidget //1
|
||||
|
||||
|
||||
IntEditor {
|
||||
id: pixelSize;
|
||||
|
||||
@@ -85,21 +85,6 @@ QWidget {
|
||||
}
|
||||
}
|
||||
|
||||
QWidget {
|
||||
layout: HorizontalLayout {
|
||||
Label {
|
||||
text: qsTr("Aliasing")
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
text: qsTr("Smooth")
|
||||
backendValue: backendValues.smooth
|
||||
baseStateFlag: isBaseState;
|
||||
checkable: true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QWidget { // 1
|
||||
layout: HorizontalLayout {
|
||||
|
||||
@@ -135,41 +120,6 @@ QWidget {
|
||||
}
|
||||
} //QWidget //1
|
||||
|
||||
QWidget { // 1
|
||||
layout: HorizontalLayout {
|
||||
|
||||
Label {
|
||||
text: qsTr("Painted size")
|
||||
}
|
||||
|
||||
DoubleSpinBox {
|
||||
text: "W"
|
||||
alignRight: false
|
||||
spacing: 4
|
||||
singleStep: 1;
|
||||
enabled: anchorBackend.hasParent;
|
||||
backendValue: backendValues.paintedWidth
|
||||
minimum: -2000;
|
||||
maximum: 2000;
|
||||
baseStateFlag: isBaseState;
|
||||
}
|
||||
|
||||
DoubleSpinBox {
|
||||
singleStep: 1;
|
||||
text: "H"
|
||||
alignRight: false
|
||||
spacing: 4
|
||||
backendValue: backendValues.paintedHeight
|
||||
enabled: anchorBackend.hasParent;
|
||||
minimum: -2000;
|
||||
maximum: 2000;
|
||||
baseStateFlag: isBaseState;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
} //QWidget //1
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,6 +48,8 @@ GroupBox {
|
||||
property variant colorAlpha: colorGroupBox.alpha
|
||||
property bool hasGradient: backendValues.gradient.isInModel
|
||||
|
||||
property bool gradientIsBinding: backendValues.gradient.isBound
|
||||
|
||||
onHasGradientChanged: {
|
||||
print("onGradientInModelChanged")
|
||||
if (backendValues.gradient.isInModel) {
|
||||
@@ -75,7 +77,7 @@ GroupBox {
|
||||
isSetup = true;
|
||||
gradientLine.active = false;
|
||||
colorGroupBox.setSolidButtonChecked = true;
|
||||
if (backendValues.gradient.isInModel) {
|
||||
if (backendValues.gradient.isInModel && !gradientIsBinding) {
|
||||
colorGroupBox.setGradientButtonChecked = true;
|
||||
gradientLine.active = true;
|
||||
gradientLine.setupGradient();
|
||||
@@ -117,6 +119,8 @@ GroupBox {
|
||||
}
|
||||
|
||||
ColorGroupBox {
|
||||
enabled: !gradientIsBinding
|
||||
opacity: gradientIsBinding ? 0.7 : 1
|
||||
id: colorGroupBox
|
||||
caption: qsTr("Rectangle")
|
||||
finished: finishedNotify
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
# may offer an updated version of it.
|
||||
|
||||
QT += declarative
|
||||
CONFIG(debug, debug|release):CONFIG += declarative_debug
|
||||
|
||||
SOURCES += $$PWD/qmlapplicationviewer.cpp
|
||||
HEADERS += $$PWD/qmlapplicationviewer.h
|
||||
|
||||
@@ -6296,6 +6296,10 @@ rückgängig machen?</translation>
|
||||
<source>Technical Support</source>
|
||||
<translation>Technischer Support</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Report Bug</source>
|
||||
<translation type="obsolete">Fehler melden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Increase Font Size</source>
|
||||
<translation>Schrift vergrößern</translation>
|
||||
@@ -6356,6 +6360,10 @@ rückgängig machen?</translation>
|
||||
<source>Context Help</source>
|
||||
<translation>Kontexthilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Report Bug...</source>
|
||||
<translation>Fehler melden...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Activate Index in Help mode</source>
|
||||
<translation>Index im Modus "Hilfe" zeigen</translation>
|
||||
@@ -10235,6 +10243,10 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeich
|
||||
</context>
|
||||
<context>
|
||||
<name>TextEditor::BaseFileFind</name>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
<translation>Suche</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 found</source>
|
||||
<translation>%1 gefunden</translation>
|
||||
@@ -24444,7 +24456,7 @@ Bitte verwenden Sie den Stop-Button.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Attach...</source>
|
||||
<translation>Anhängen...</translation>
|
||||
<translation type="obsolete">Anhängen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Events</source>
|
||||
@@ -24484,7 +24496,7 @@ Bitte verwenden Sie den Stop-Button.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Detach</source>
|
||||
<translation>Abhängen</translation>
|
||||
<translation type="obsolete">Abhängen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -25447,140 +25459,140 @@ Ist das Gerät verbunden und für Netzwerkzugriff eingerichtet?</translation>
|
||||
<name>RemoteLinux::Internal::AbstractMaemoPackageCreationStep</name>
|
||||
<message>
|
||||
<source>Package up to date.</source>
|
||||
<translation>Paket ist auf aktuellem Stand.</translation>
|
||||
<translation type="obsolete">Paket ist auf aktuellem Stand.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Creating package file ...</source>
|
||||
<translation>Erzeuge Paketdatei...</translation>
|
||||
<translation type="obsolete">Erzeuge Paketdatei...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Package created.</source>
|
||||
<translation>Paketdatei erzeugt.</translation>
|
||||
<translation type="obsolete">Paketdatei erzeugt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging failed.</source>
|
||||
<translation>Die Paketerstellung schlug fehl.</translation>
|
||||
<translation type="obsolete">Die Paketerstellung schlug fehl.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging error: No Qt version.</source>
|
||||
<translation>Paketierungsfehler: Keine Qt-Version.</translation>
|
||||
<translation type="obsolete">Paketierungsfehler: Keine Qt-Version.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Package Creation: Running command '%1'.</source>
|
||||
<translation>Paketerstellung: Führe Kommando '%1' aus.</translation>
|
||||
<translation type="obsolete">Paketerstellung: Führe Kommando '%1' aus.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging error: Could not start command '%1'. Reason: %2</source>
|
||||
<translation>Fehler bei Paketerstellung: Das Kommando '%1' konnte nicht ausgeführt werden: %2</translation>
|
||||
<translation type="obsolete">Fehler bei Paketerstellung: Das Kommando '%1' konnte nicht ausgeführt werden: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging Error: Command '%1' failed.</source>
|
||||
<translation>Fehler bei Paketerstellung: Das Kommando '%1' schlug fehl.</translation>
|
||||
<translation type="obsolete">Fehler bei Paketerstellung: Das Kommando '%1' schlug fehl.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source> Reason: %1</source>
|
||||
<translation> Ursache: %1</translation>
|
||||
<translation type="obsolete"> Ursache: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exit code: %1</source>
|
||||
<translation>Rückgabewert: %1</translation>
|
||||
<translation type="obsolete">Rückgabewert: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::Internal::MaemoDebianPackageCreationStep</name>
|
||||
<message>
|
||||
<source>Create Debian Package</source>
|
||||
<translation>Debian-Paketdatei erzeugen</translation>
|
||||
<translation type="obsolete">Debian-Paketdatei erzeugen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging failed.</source>
|
||||
<translation>Die Paketerstellung schlug fehl.</translation>
|
||||
<translation type="obsolete">Die Paketerstellung schlug fehl.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not move package files from %1 to %2.</source>
|
||||
<translation>Die Paketdateien konnten nicht von %1 zu %2 verschoben werden.</translation>
|
||||
<translation type="obsolete">Die Paketdateien konnten nicht von %1 zu %2 verschoben werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your project name contains characters not allowed in Debian packages.
|
||||
They must only use lower-case letters, numbers, '-', '+' and '.'.
|
||||
We will try to work around that, but you may experience problems.</source>
|
||||
<translation>Der Projektname enthält für Debian-Paketdateien nicht zulässige Zeichen.
|
||||
<translation type="obsolete">Der Projektname enthält für Debian-Paketdateien nicht zulässige Zeichen.
|
||||
Es dürfen nur Kleinbuchstaben, Ziffern sowie '-', '+' und '.' verwendet werden.
|
||||
Es wird versucht eine Paketdatei zu erstellen, es können aber Probleme auftreten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging failed: Foreign debian directory detected.</source>
|
||||
<translation>Fehlschlag bei Paketerstellung: Es wurde ein fremder Debian-Ordner festgestellt.</translation>
|
||||
<translation type="obsolete">Fehlschlag bei Paketerstellung: Es wurde ein fremder Debian-Ordner festgestellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>You are not using a shadow build and there is a debian directory in your project root ('%1'). Qt Creator will not overwrite that directory. Please remove it or use the shadow build feature.</source>
|
||||
<translation>Sie verwenden keinen Shadow-Build und es befindet sich ein Debian-Ordner im Hauptordner Ihres Projektes ('%1'). Qt Creator wird diesen Ordner nicht überschreiben. Bitte entfernen Sie den Ordner oder verwenden Sie einen Shadow-Build.</translation>
|
||||
<translation type="obsolete">Sie verwenden keinen Shadow-Build und es befindet sich ein Debian-Ordner im Hauptordner Ihres Projektes ('%1'). Qt Creator wird diesen Ordner nicht überschreiben. Bitte entfernen Sie den Ordner oder verwenden Sie einen Shadow-Build.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not remove directory '%1': %2</source>
|
||||
<translation>Der Ordner '%1' konnte nicht entfernt werden: %2</translation>
|
||||
<translation type="obsolete">Der Ordner '%1' konnte nicht entfernt werden: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not create Debian directory '%1'.</source>
|
||||
<translation>Der Debian-Ordner %1 konnte nicht angelegt werden.</translation>
|
||||
<translation type="obsolete">Der Debian-Ordner %1 konnte nicht angelegt werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not copy file '%1' to '%2'</source>
|
||||
<translation>Die Datei '%1' konnte nicht nach '%2' kopiert werden</translation>
|
||||
<translation type="obsolete">Die Datei '%1' konnte nicht nach '%2' kopiert werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Could not create file '%1'.</source>
|
||||
<translation>Fehler: Die Datei '%1' konnte nicht erstellt werden.</translation>
|
||||
<translation type="obsolete">Fehler: Die Datei '%1' konnte nicht erstellt werden.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::Internal::MaemoRpmPackageCreationStep</name>
|
||||
<message>
|
||||
<source>Create RPM Package</source>
|
||||
<translation>RPM-Paket erzeugen</translation>
|
||||
<translation type="obsolete">RPM-Paket erzeugen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging failed.</source>
|
||||
<translation>Die Paketerstellung schlug fehl.</translation>
|
||||
<translation type="obsolete">Die Paketerstellung schlug fehl.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not move package file from %1 to %2.</source>
|
||||
<translation>Die Paketdateien konnten nicht von %1 zu %2 verschoben werden.</translation>
|
||||
<translation type="obsolete">Die Paketdateien konnten nicht von %1 zu %2 verschoben werden.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::Internal::CreateTarStepWidget</name>
|
||||
<message>
|
||||
<source>Create tarball:</source>
|
||||
<translation>Tarball erzeugen:</translation>
|
||||
<translation type="obsolete">Tarball erzeugen:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::Internal::MaemoTarPackageCreationStep</name>
|
||||
<message>
|
||||
<source>Create tarball</source>
|
||||
<translation>Tarball erzeugen</translation>
|
||||
<translation type="obsolete">Tarball erzeugen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: tar file %1 cannot be opened (%2).</source>
|
||||
<translation>Fehler: Die tar-Datei '%1' kann nicht geöffnet werden (%2).</translation>
|
||||
<translation type="obsolete">Fehler: Die tar-Datei '%1' kann nicht geöffnet werden (%2).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error writing tar file '%1': %2.</source>
|
||||
<translation>Fehler beim Schreiben der tar-Datei '%1': %2.</translation>
|
||||
<translation type="obsolete">Fehler beim Schreiben der tar-Datei '%1': %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error reading file '%1': %2.</source>
|
||||
<translation>Fehler beim Lesen der Datei '%1': %2.</translation>
|
||||
<translation type="obsolete">Fehler beim Lesen der Datei '%1': %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot add file '%1' to tar-archive: path too long.</source>
|
||||
<translation>Die Datei '%1' kann nicht zu dem Tar-Archiv hinzugefügt werden: Der Pfad ist zu lang.
|
||||
<translation type="obsolete">Die Datei '%1' kann nicht zu dem Tar-Archiv hinzugefügt werden: Der Pfad ist zu lang.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error writing tar file '%1': %2</source>
|
||||
<translation>Fehler beim Schreiben der tar-Datei '%1': %2</translation>
|
||||
<translation type="obsolete">Fehler beim Schreiben der tar-Datei '%1': %2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -26447,7 +26459,7 @@ Möchten Sie sie zum Projekt hinzufügen?</html></translation>
|
||||
<name>Valgrind::Internal::CallgrindTool</name>
|
||||
<message>
|
||||
<source>Valgrind Function Profiler</source>
|
||||
<translation>Valgrind-Profiling einer Funktion</translation>
|
||||
<translation>Valgrind-Profiling der Funktionen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Valgrind Profile uses the "callgrind" tool to record function calls when a program runs.</source>
|
||||
@@ -27585,13 +27597,17 @@ Erfordert Qt 4.7.4 oder neuer.</translation>
|
||||
<source>Show Examples and Demos</source>
|
||||
<translation>Zeige Beispiele und Demos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag List</source>
|
||||
<translation>Schlüsselworte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Filter by Tag</source>
|
||||
<translation>Filtere nach Schlüsselwort</translation>
|
||||
<translation type="obsolete">Filtere nach Schlüsselwort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tag Filter: %1</source>
|
||||
<translation>Schlüsselwortfilter: %1</translation>
|
||||
<translation type="obsolete">Schlüsselwortfilter: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -27722,7 +27738,7 @@ Erfordert Qt 4.7.4 oder neuer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear</source>
|
||||
<translation>Löschen</translation>
|
||||
<translation type="obsolete">Löschen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -27958,4 +27974,151 @@ Erfordert Qt 4.7.4 oder neuer.</translation>
|
||||
<translation>Der QML-Beobachter stellt zusätzliche Debugging-Funktionalität für QML-Anwendungen zur Verfügung, wie zum Beispiel interaktives Debuggen und weitere Werkzeuge zur Untersuchung. Er muss für jede verwendete Qt-Version separat übersetzt werden. Gehen Sie auf die Qt4-Einstellungsseite, wählen Sie die betreffende Qt-Installation aus und klicken Sie auf 'Neu Erstellen'.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ExampleDelegate</name>
|
||||
<message>
|
||||
<source>Tags:</source>
|
||||
<translation>Schlüsselworte:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::AbstractMaemoPackageCreationStep</name>
|
||||
<message>
|
||||
<source>Package up to date.</source>
|
||||
<translation>Paket ist auf aktuellem Stand.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Creating package file ...</source>
|
||||
<translation>Erzeuge Paketdatei...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Package created.</source>
|
||||
<translation>Paketdatei erzeugt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging failed.</source>
|
||||
<translation>Die Paketerstellung schlug fehl.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging error: No Qt version.</source>
|
||||
<translation>Paketierungsfehler: Keine Qt-Version.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Package Creation: Running command '%1'.</source>
|
||||
<translation>Paketerstellung: Führe Kommando '%1' aus.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging error: Could not start command '%1'. Reason: %2</source>
|
||||
<translation>Fehler bei Paketerstellung: Das Kommando '%1' konnte nicht ausgeführt werden: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging Error: Command '%1' failed.</source>
|
||||
<translation>Fehler bei Paketerstellung: Das Kommando '%1' schlug fehl.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source> Reason: %1</source>
|
||||
<translation> Ursache: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Exit code: %1</source>
|
||||
<translation>Rückgabewert: %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::MaemoDebianPackageCreationStep</name>
|
||||
<message>
|
||||
<source>Create Debian Package</source>
|
||||
<translation>Debian-Paketdatei erzeugen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging failed.</source>
|
||||
<translation>Die Paketerstellung schlug fehl.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not move package files from %1 to %2.</source>
|
||||
<translation>Die Paketdateien konnten nicht von %1 zu %2 verschoben werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your project name contains characters not allowed in Debian packages.
|
||||
They must only use lower-case letters, numbers, '-', '+' and '.'.
|
||||
We will try to work around that, but you may experience problems.</source>
|
||||
<translation>Der Projektname enthält für Debian-Paketdateien nicht zulässige Zeichen.
|
||||
Es dürfen nur Kleinbuchstaben, Ziffern sowie '-', '+' und '.' verwendet werden.
|
||||
Es wird versucht eine Paketdatei zu erstellen, es können aber Probleme auftreten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging failed: Foreign debian directory detected.</source>
|
||||
<translation>Fehlschlag bei Paketerstellung: Es wurde ein fremder Debian-Ordner festgestellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>You are not using a shadow build and there is a debian directory in your project root ('%1'). Qt Creator will not overwrite that directory. Please remove it or use the shadow build feature.</source>
|
||||
<translation>Sie verwenden keinen Shadow-Build und es befindet sich ein Debian-Ordner im Hauptordner Ihres Projektes ('%1'). Qt Creator wird diesen Ordner nicht überschreiben. Bitte entfernen Sie den Ordner oder verwenden Sie einen Shadow-Build.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not remove directory '%1': %2</source>
|
||||
<translation>Der Ordner '%1' konnte nicht entfernt werden: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not create Debian directory '%1'.</source>
|
||||
<translation>Der Debian-Ordner %1 konnte nicht angelegt werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not copy file '%1' to '%2'</source>
|
||||
<translation>Die Datei '%1' konnte nicht nach '%2' kopiert werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Could not create file '%1'.</source>
|
||||
<translation>Fehler: Die Datei '%1' konnte nicht erstellt werden.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::MaemoRpmPackageCreationStep</name>
|
||||
<message>
|
||||
<source>Create RPM Package</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Packaging failed.</source>
|
||||
<translation>Die Paketerstellung schlug fehl.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not move package file from %1 to %2.</source>
|
||||
<translation>Die Paketdateien konnten nicht von %1 zu %2 verschoben werden.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::CreateTarStepWidget</name>
|
||||
<message>
|
||||
<source>Create tarball:</source>
|
||||
<translation>Tarball erzeugen:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemoteLinux::MaemoTarPackageCreationStep</name>
|
||||
<message>
|
||||
<source>Create tarball</source>
|
||||
<translation>Tarball erzeugen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: tar file %1 cannot be opened (%2).</source>
|
||||
<translation>Fehler: Die tar-Datei '%1' kann nicht geöffnet werden (%2).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error writing tar file '%1': %2.</source>
|
||||
<translation>Fehler beim Schreiben der tar-Datei '%1': %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error reading file '%1': %2.</source>
|
||||
<translation>Fehler beim Lesen der Datei '%1': %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot add file '%1' to tar-archive: path too long.</source>
|
||||
<translation>Die Datei '%1' kann nicht zu dem Tar-Archiv hinzugefügt werden: Der Pfad ist zu lang.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error writing tar file '%1': %2</source>
|
||||
<translation>Fehler beim Schreiben der tar-Datei '%1': %2</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,2 +0,0 @@
|
||||
TEMPLATE = subdirs
|
||||
SUBDIRS = styleitem
|
||||
@@ -1,78 +0,0 @@
|
||||
TEMPLATE = lib
|
||||
CONFIG += qt plugin
|
||||
QT += declarative
|
||||
QT += script
|
||||
|
||||
TARGET = styleplugin
|
||||
include(../../../../../qtcreator.pri)
|
||||
DESTDIR = $$IDE_DATA_PATH/welcomescreen/components/plugin
|
||||
OBJECTS_DIR = tmp
|
||||
MOC_DIR = tmp
|
||||
|
||||
HEADERS += qtmenu.h \
|
||||
qtmenubar.h \
|
||||
qtmenuitem.h \
|
||||
qrangemodel_p.h \
|
||||
qrangemodel.h \
|
||||
qstyleplugin.h \
|
||||
qdeclarativefolderlistmodel.h \
|
||||
qstyleitem.h \
|
||||
qwheelarea.h
|
||||
|
||||
SOURCES += qtmenu.cpp \
|
||||
qtmenubar.cpp \
|
||||
qtmenuitem.cpp \
|
||||
qrangemodel.cpp \
|
||||
qstyleplugin.cpp \
|
||||
qdeclarativefolderlistmodel.cpp \
|
||||
qstyleitem.cpp \
|
||||
qwheelarea.cpp
|
||||
|
||||
|
||||
OTHER_FILES += \
|
||||
../gallery.qml \
|
||||
../widgets/Tab.qml \
|
||||
../widgets/TabBar.qml \
|
||||
../widgets/TabFrame.qml \
|
||||
../Button.qml \
|
||||
../ButtonRow.qml \
|
||||
../CheckBox.qml \
|
||||
../ChoiceList.qml \
|
||||
../components.pro \
|
||||
../ContextMenu.qml \
|
||||
../Dial.qml \
|
||||
../Frame.qml \
|
||||
../GroupBox.qml \
|
||||
../Menu.qml \
|
||||
../ProgressBar.qml \
|
||||
../RadioButton.qml \
|
||||
../ScrollArea.qml \
|
||||
../ScrollBar.qml \
|
||||
../Slider.qml \
|
||||
../SpinBox.qml \
|
||||
../Switch.qml \
|
||||
../Tab.qml \
|
||||
../TableView.qml \
|
||||
../TabBar.qml \
|
||||
../TabFrame.qml \
|
||||
../TextArea.qml \
|
||||
../TextField.qml \
|
||||
../TextScrollArea.qml \
|
||||
../ToolBar.qml \
|
||||
../ToolButton.qml \
|
||||
../custom/BasicButton.qml \
|
||||
../custom/BusyIndicator.qml \
|
||||
../custom/Button.qml \
|
||||
../custom/ButtonColumn.qml \
|
||||
../custom/ButtonGroup.js \
|
||||
../custom/ButtonRow.qml \
|
||||
../custom/CheckBox.qml \
|
||||
../custom/ChoiceList.qml \
|
||||
../custom/ProgressBar.qml \
|
||||
../custom/Slider.qml \
|
||||
../custom/SpinBox.qml \
|
||||
../custom/TextField.qml \
|
||||
../../examples/Browser.qml \
|
||||
../../examples/Panel.qml \
|
||||
../../examples/ModelView.qml \
|
||||
../../examples/Gallery.qml
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
import QtQuick 1.0
|
||||
import "widgets" as Widgets
|
||||
import components 1.0 as Components
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
TEMPLATE = subdirs
|
||||
SUBDIRS = components/styleitem
|
||||
|
||||
QML_IMPORT_PATH += $$OUT_PWD
|
||||
|
||||
OTHER_FILES = develop.qml \
|
||||
gettingstarted.qml \
|
||||
newssupport.qml \
|
||||
welcomescreen.qml \
|
||||
widgets/Button.qml \
|
||||
widgets/CheckBox.qml \
|
||||
widgets/Feedback.qml \
|
||||
widgets/RatingBar.qml \
|
||||
widgets/ExampleBrowser.qml \
|
||||
widgets/LineEdit.qml \
|
||||
widgets/ExampleDelegate.qml \
|
||||
widgets/LinksBar.qml \
|
||||
widgets/HeaderItemView.qml \
|
||||
widgets/RecentSessions.qml \
|
||||
widgets/RecentProjects.qml \
|
||||
widgets/FeaturedAndNewsListing.qml \
|
||||
widgets/NewsListing.qml \
|
||||
widgets/TabWidget.qml \
|
||||
widgets/TagBrowser.qml \
|
||||
examples_fallback.xml \
|
||||
qtcreator_tutorials.xml
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
import QtQuick 1.0
|
||||
import "widgets"
|
||||
import components 1.0 as Components
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
import Qt 4.7
|
||||
import "../components/custom" as Custom
|
||||
import qtcomponents.custom 1.0 as Custom
|
||||
|
||||
Custom.Button {
|
||||
id: button
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import QtQuick 1.0
|
||||
import "../components/custom" as Custom
|
||||
import qtcomponents.custom 1.0 as Custom
|
||||
|
||||
Custom.CheckBox{
|
||||
id:checkbox
|
||||
|
||||
@@ -31,8 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
import QtQuick 1.0
|
||||
import components 1.0 as Components
|
||||
import widgets 1.0 as Widgets
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
Item {
|
||||
id: exampleBrowserRoot
|
||||
@@ -57,7 +56,7 @@ Item {
|
||||
anchors.leftMargin: - 8
|
||||
anchors.rightMargin: scrollArea.verticalScrollBar.visible ? 0 : -8
|
||||
|
||||
Widgets.LineEdit {
|
||||
LineEdit {
|
||||
id: lineEdit
|
||||
placeholderText: !checkBox.checked ? qsTr("Search in Tutorials") : qsTr("Search in Tutorials, Examples and Demos")
|
||||
focus: true
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
import QtQuick 1.0
|
||||
import components 1.0 as Components
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
import QtQuick 1.0
|
||||
import components 1.0 as Components
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
Item {
|
||||
InsetText {
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
import QtQuick 1.0
|
||||
import components 1.0 as Components
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
Rectangle {
|
||||
id: inner_background
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
import QtQuick 1.0
|
||||
import "../components/custom" as Custom
|
||||
import qtcomponents.custom 1.0 as Custom
|
||||
|
||||
|
||||
Custom.TextField {
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
import QtQuick 1.0
|
||||
import components 1.0 as Components
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
Row {
|
||||
id: tabBar
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
import QtQuick 1.1
|
||||
import components 1.0 as Components
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
import QtQuick 1.1
|
||||
import components 1.0 as Components
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
HeaderItemView {
|
||||
header: qsTr("Recently Edited Projects")
|
||||
|
||||
@@ -31,14 +31,14 @@
|
||||
**************************************************************************/
|
||||
|
||||
import QtQuick 1.0
|
||||
import components 1.0 as Components
|
||||
import qtcomponents 1.0 as Components
|
||||
|
||||
HeaderItemView {
|
||||
header: qsTr("Recently Used Sessions")
|
||||
model: sessionList
|
||||
|
||||
delegate: Rectangle {
|
||||
height: 60
|
||||
height: 30
|
||||
width: dataSection.width
|
||||
|
||||
Rectangle {
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
TEMPLATE = subdirs
|
||||
SUBDIRS = qtcreator/static.pro \
|
||||
qtcreator/translations \
|
||||
qtcreator/welcomescreen
|
||||
qtcreator/translations
|
||||
|
||||
Vendored
+15
@@ -2771,6 +2771,21 @@ bool Bind::visit(ClassSpecifierAST *ast)
|
||||
startScopeOffset = tokenAt(q->unqualified_name->lastToken() - 1).end(); // at the end of the unqualified name
|
||||
}
|
||||
}
|
||||
|
||||
// get the unqualified class name
|
||||
const QualifiedNameId *q = className->asQualifiedNameId();
|
||||
const Name *unqualifiedClassName = q ? q->name() : className;
|
||||
|
||||
if (! unqualifiedClassName) // paranoia check
|
||||
className = 0;
|
||||
else if (! (unqualifiedClassName->isNameId() || unqualifiedClassName->isTemplateNameId())) {
|
||||
translationUnit()->error(sourceLocation, "expected a class-name");
|
||||
|
||||
className = unqualifiedClassName->identifier();
|
||||
|
||||
if (q && className)
|
||||
className = control()->qualifiedNameId(q->base(), className);
|
||||
}
|
||||
}
|
||||
|
||||
Class *klass = control()->newClass(sourceLocation, className);
|
||||
|
||||
+2
-1
@@ -15,7 +15,8 @@ SUBDIRS = \
|
||||
qmljs \
|
||||
qmljsdebugclient \
|
||||
glsl \
|
||||
qmleditorwidgets
|
||||
qmleditorwidgets \
|
||||
qtcomponents/styleitem
|
||||
|
||||
# Windows: Compile Qt Creator CDB extension if Debugging tools can be detected.
|
||||
win32 {
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
TEMPLATE = lib
|
||||
CONFIG += qt plugin
|
||||
QT += declarative
|
||||
QT += script
|
||||
|
||||
TARGET = styleplugin
|
||||
include(../../../../qtcreator.pri)
|
||||
DESTDIR = $$IDE_LIBRARY_PATH/qtcomponents/plugin
|
||||
OBJECTS_DIR = tmp
|
||||
MOC_DIR = tmp
|
||||
|
||||
HEADERS += qtmenu.h \
|
||||
qtmenubar.h \
|
||||
qtmenuitem.h \
|
||||
qrangemodel_p.h \
|
||||
qrangemodel.h \
|
||||
qstyleplugin.h \
|
||||
qdeclarativefolderlistmodel.h \
|
||||
qstyleitem.h \
|
||||
qwheelarea.h
|
||||
|
||||
SOURCES += qtmenu.cpp \
|
||||
qtmenubar.cpp \
|
||||
qtmenuitem.cpp \
|
||||
qrangemodel.cpp \
|
||||
qstyleplugin.cpp \
|
||||
qdeclarativefolderlistmodel.cpp \
|
||||
qstyleitem.cpp \
|
||||
qwheelarea.cpp
|
||||
|
||||
!macx {
|
||||
target.path = /lib/qtcreator/qtcomponents/plugin
|
||||
INSTALLS += target
|
||||
}
|
||||
@@ -104,7 +104,6 @@ unix:!macx {
|
||||
SOURCES += $$PWD/unixutils.cpp
|
||||
}
|
||||
HEADERS += \
|
||||
$$PWD/app_version.h \
|
||||
$$PWD/environment.h \
|
||||
$$PWD/environmentmodel.h \
|
||||
$$PWD/qtcprocess.h \
|
||||
|
||||
@@ -34,13 +34,12 @@
|
||||
|
||||
#include "analyzerrunconfigwidget.h"
|
||||
|
||||
#include "analyzersettings.h"
|
||||
|
||||
#include <utils/detailswidget.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtGui/QGroupBox>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QLabel>
|
||||
#include <QtGui/QVBoxLayout>
|
||||
|
||||
namespace Analyzer {
|
||||
@@ -52,6 +51,29 @@ AnalyzerRunConfigWidget::AnalyzerRunConfigWidget()
|
||||
new QVBoxLayout(mainWidget);
|
||||
m_detailsWidget->setWidget(mainWidget);
|
||||
|
||||
QWidget *globalSetting = new QWidget(mainWidget);
|
||||
QHBoxLayout *globalSettingLayout = new QHBoxLayout(globalSetting);
|
||||
mainWidget->layout()->addWidget(globalSetting);
|
||||
QLabel *label = new QLabel(displayName(), globalSetting);
|
||||
globalSettingLayout->addWidget(label);
|
||||
m_settingsCombo = new QComboBox(globalSetting);
|
||||
m_settingsCombo->addItems(QStringList()
|
||||
<< QApplication::translate("ProjectExplorer::Internal::EditorSettingsPropertiesPage", "Global")
|
||||
<< QApplication::translate("ProjectExplorer::Internal::EditorSettingsPropertiesPage", "Custom")
|
||||
);
|
||||
globalSettingLayout->addWidget(m_settingsCombo);
|
||||
connect(m_settingsCombo, SIGNAL(activated(int)), this, SLOT(chooseSettings(int)));
|
||||
m_restoreButton = new QPushButton(
|
||||
QApplication::translate("ProjectExplorer::Internal::EditorSettingsPropertiesPage", "Restore Global"),
|
||||
globalSetting);
|
||||
globalSettingLayout->addWidget(m_restoreButton);
|
||||
connect(m_restoreButton, SIGNAL(clicked()), this, SLOT(restoreGlobal()));
|
||||
globalSettingLayout->addStretch(2);
|
||||
|
||||
m_subConfigWidget = new QWidget(mainWidget);
|
||||
mainWidget->layout()->addWidget(m_subConfigWidget);
|
||||
new QVBoxLayout(m_subConfigWidget);
|
||||
|
||||
QVBoxLayout *layout = new QVBoxLayout(this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->addWidget(m_detailsWidget);
|
||||
@@ -66,23 +88,39 @@ void AnalyzerRunConfigWidget::setRunConfiguration(ProjectExplorer::RunConfigurat
|
||||
{
|
||||
QTC_ASSERT(rc, return);
|
||||
|
||||
AnalyzerProjectSettings *settings = rc->extraAspect<AnalyzerProjectSettings>();
|
||||
QTC_ASSERT(settings, return);
|
||||
m_settings = rc->extraAspect<AnalyzerProjectSettings>();
|
||||
QTC_ASSERT(m_settings, return);
|
||||
|
||||
// update summary text
|
||||
QStringList tools;
|
||||
foreach (AbstractAnalyzerSubConfig *config, settings->subConfigs()) {
|
||||
foreach (AbstractAnalyzerSubConfig *config, m_settings->subConfigs()) {
|
||||
tools << QString("<strong>%1</strong>").arg(config->displayName());
|
||||
}
|
||||
m_detailsWidget->setSummaryText(tr("Available settings: %1").arg(tools.join(", ")));
|
||||
|
||||
// add group boxes for each sub config
|
||||
QLayout *layout = m_detailsWidget->widget()->layout();
|
||||
foreach (AbstractAnalyzerSubConfig *config, settings->subConfigs()) {
|
||||
(void) new QGroupBox(config->displayName());
|
||||
QLayout *layout = m_subConfigWidget->layout();
|
||||
foreach (AbstractAnalyzerSubConfig *config, m_settings->customSubConfigs()) {
|
||||
QWidget *widget = config->createConfigWidget(this);
|
||||
layout->addWidget(widget);
|
||||
}
|
||||
m_subConfigWidget->setEnabled(!m_settings->isUsingGlobalSettings());
|
||||
m_settingsCombo->setCurrentIndex(m_settings->isUsingGlobalSettings() ? 0 : 1);
|
||||
m_restoreButton->setEnabled(!m_settings->isUsingGlobalSettings());
|
||||
}
|
||||
|
||||
void AnalyzerRunConfigWidget::chooseSettings(int setting)
|
||||
{
|
||||
QTC_ASSERT(m_settings, return);
|
||||
m_settings->setUsingGlobalSettings(setting == 0);
|
||||
m_subConfigWidget->setEnabled(!m_settings->isUsingGlobalSettings());
|
||||
m_restoreButton->setEnabled(!m_settings->isUsingGlobalSettings());
|
||||
}
|
||||
|
||||
void AnalyzerRunConfigWidget::restoreGlobal()
|
||||
{
|
||||
QTC_ASSERT(m_settings, return);
|
||||
m_settings->resetCustomToGlobalSettings();
|
||||
}
|
||||
|
||||
} // namespace Analyzer
|
||||
|
||||
@@ -35,8 +35,13 @@
|
||||
#ifndef ANALYZER_INTERNAL_ANALYZERRUNCONFIGWIDGET_H
|
||||
#define ANALYZER_INTERNAL_ANALYZERRUNCONFIGWIDGET_H
|
||||
|
||||
#include "analyzerbase_global.h"
|
||||
#include "analyzersettings.h"
|
||||
|
||||
#include <projectexplorer/runconfiguration.h>
|
||||
#include <analyzerbase/analyzerbase_global.h>
|
||||
|
||||
#include <QtGui/QComboBox>
|
||||
#include <QtGui/QPushButton>
|
||||
|
||||
namespace Utils {
|
||||
class DetailsWidget;
|
||||
@@ -57,8 +62,16 @@ public:
|
||||
|
||||
void setRunConfiguration(ProjectExplorer::RunConfiguration *rc);
|
||||
|
||||
private slots:
|
||||
void chooseSettings(int setting);
|
||||
void restoreGlobal();
|
||||
|
||||
private:
|
||||
Utils::DetailsWidget *m_detailsWidget;
|
||||
QWidget *m_subConfigWidget;
|
||||
AnalyzerProjectSettings *m_settings;
|
||||
QComboBox *m_settingsCombo;
|
||||
QPushButton *m_restoreButton;
|
||||
};
|
||||
|
||||
} // namespace Analyzer
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
using namespace Analyzer::Internal;
|
||||
|
||||
static const char groupC[] = "Analyzer";
|
||||
static const char useGlobalC[] = "Analyzer.Project.UseGlobal";
|
||||
|
||||
namespace Analyzer {
|
||||
|
||||
@@ -57,15 +58,6 @@ AnalyzerSettings::AnalyzerSettings(QObject *parent)
|
||||
{
|
||||
}
|
||||
|
||||
bool AnalyzerSettings::fromMap(const QVariantMap &map)
|
||||
{
|
||||
bool ret = true;
|
||||
foreach (AbstractAnalyzerSubConfig *config, subConfigs()) {
|
||||
ret = ret && config->fromMap(map);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
QVariantMap AnalyzerSettings::defaults() const
|
||||
{
|
||||
QVariantMap map;
|
||||
@@ -75,10 +67,29 @@ QVariantMap AnalyzerSettings::defaults() const
|
||||
return map;
|
||||
}
|
||||
|
||||
bool AnalyzerSettings::fromMap(const QVariantMap &map)
|
||||
{
|
||||
return fromMap(map, &m_subConfigs);
|
||||
}
|
||||
|
||||
bool AnalyzerSettings::fromMap(const QVariantMap &map, QList<AbstractAnalyzerSubConfig *> *subConfigs)
|
||||
{
|
||||
bool ret = true;
|
||||
foreach (AbstractAnalyzerSubConfig *config, *subConfigs) {
|
||||
ret = ret && config->fromMap(map);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
QVariantMap AnalyzerSettings::toMap() const
|
||||
{
|
||||
return toMap(m_subConfigs);
|
||||
}
|
||||
|
||||
QVariantMap AnalyzerSettings::toMap(const QList<AbstractAnalyzerSubConfig *> &subConfigs) const
|
||||
{
|
||||
QVariantMap map;
|
||||
foreach (AbstractAnalyzerSubConfig *config, subConfigs()) {
|
||||
foreach (AbstractAnalyzerSubConfig *config, subConfigs) {
|
||||
map.unite(config->toMap());
|
||||
}
|
||||
return map;
|
||||
@@ -102,6 +113,7 @@ AnalyzerGlobalSettings *AnalyzerGlobalSettings::instance()
|
||||
AnalyzerGlobalSettings::~AnalyzerGlobalSettings()
|
||||
{
|
||||
m_instance = 0;
|
||||
qDeleteAll(m_subConfigs);
|
||||
}
|
||||
|
||||
void AnalyzerGlobalSettings::readSettings()
|
||||
@@ -134,30 +146,36 @@ void AnalyzerGlobalSettings::writeSettings() const
|
||||
void AnalyzerGlobalSettings::registerSubConfigs
|
||||
(AnalyzerSubConfigFactory globalCreator, AnalyzerSubConfigFactory projectCreator)
|
||||
{
|
||||
m_projectSubConfigs.append(projectCreator);
|
||||
m_projectSubConfigFactories.append(projectCreator);
|
||||
|
||||
AbstractAnalyzerSubConfig *config = globalCreator();
|
||||
config->setParent(this);
|
||||
m_subConfigs.append(config);
|
||||
AnalyzerPlugin::instance()->addAutoReleasedObject(new AnalyzerOptionsPage(config));
|
||||
|
||||
readSettings();
|
||||
}
|
||||
|
||||
QList<AnalyzerSubConfigFactory> AnalyzerGlobalSettings::projectSubConfigs() const
|
||||
QList<AnalyzerSubConfigFactory> AnalyzerGlobalSettings::projectSubConfigFactories() const
|
||||
{
|
||||
return m_projectSubConfigs;
|
||||
return m_projectSubConfigFactories;
|
||||
}
|
||||
|
||||
AnalyzerProjectSettings::AnalyzerProjectSettings(QObject *parent)
|
||||
: AnalyzerSettings(parent)
|
||||
: AnalyzerSettings(parent), m_useGlobalSettings(true)
|
||||
{
|
||||
// add sub configs
|
||||
foreach (AnalyzerSubConfigFactory factory, AnalyzerGlobalSettings::instance()->projectSubConfigs())
|
||||
factory()->setParent(this);
|
||||
foreach (AnalyzerSubConfigFactory factory, AnalyzerGlobalSettings::instance()->projectSubConfigFactories()) {
|
||||
AbstractAnalyzerSubConfig *config = factory();
|
||||
m_customConfigurations.append(config);
|
||||
}
|
||||
|
||||
// take defaults from global settings
|
||||
AnalyzerGlobalSettings *gs = AnalyzerGlobalSettings::instance();
|
||||
fromMap(gs->toMap());
|
||||
m_subConfigs = AnalyzerGlobalSettings::instance()->subConfigs();
|
||||
resetCustomToGlobalSettings();
|
||||
}
|
||||
|
||||
AnalyzerProjectSettings::~AnalyzerProjectSettings()
|
||||
{
|
||||
qDeleteAll(m_customConfigurations);
|
||||
}
|
||||
|
||||
QString AnalyzerProjectSettings::displayName() const
|
||||
@@ -167,12 +185,35 @@ QString AnalyzerProjectSettings::displayName() const
|
||||
|
||||
bool AnalyzerProjectSettings::fromMap(const QVariantMap &map)
|
||||
{
|
||||
return AnalyzerSettings::fromMap(map);
|
||||
if (!AnalyzerSettings::fromMap(map, &m_customConfigurations))
|
||||
return false;
|
||||
m_useGlobalSettings = map.value(QLatin1String(useGlobalC), true).toBool();
|
||||
return true;
|
||||
}
|
||||
|
||||
QVariantMap AnalyzerProjectSettings::toMap() const
|
||||
{
|
||||
return AnalyzerSettings::toMap();
|
||||
QVariantMap map = AnalyzerSettings::toMap(m_customConfigurations);
|
||||
map.insert(QLatin1String(useGlobalC), m_useGlobalSettings);
|
||||
return map;
|
||||
}
|
||||
|
||||
void AnalyzerProjectSettings::setUsingGlobalSettings(bool value)
|
||||
{
|
||||
if (value == m_useGlobalSettings)
|
||||
return;
|
||||
m_useGlobalSettings = value;
|
||||
if (m_useGlobalSettings) {
|
||||
m_subConfigs = AnalyzerGlobalSettings::instance()->subConfigs();
|
||||
} else {
|
||||
m_subConfigs = m_customConfigurations;
|
||||
}
|
||||
}
|
||||
|
||||
void AnalyzerProjectSettings::resetCustomToGlobalSettings()
|
||||
{
|
||||
AnalyzerGlobalSettings *gs = AnalyzerGlobalSettings::instance();
|
||||
AnalyzerSettings::fromMap(gs->toMap(), &m_customConfigurations);
|
||||
}
|
||||
|
||||
} // namespace Analyzer
|
||||
|
||||
@@ -95,12 +95,16 @@ public:
|
||||
template<class T>
|
||||
T *subConfig() const
|
||||
{
|
||||
return findChild<T *>();
|
||||
foreach (AbstractAnalyzerSubConfig *subConfig, subConfigs()) {
|
||||
if (T *config = qobject_cast<T *>(subConfig))
|
||||
return config;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
QList<AbstractAnalyzerSubConfig *> subConfigs() const
|
||||
{
|
||||
return findChildren<AbstractAnalyzerSubConfig *>();
|
||||
return m_subConfigs;
|
||||
}
|
||||
|
||||
QVariantMap defaults() const;
|
||||
@@ -109,7 +113,11 @@ public:
|
||||
protected:
|
||||
virtual bool fromMap(const QVariantMap &map);
|
||||
|
||||
QVariantMap toMap(const QList<AbstractAnalyzerSubConfig *> &subConfigs) const;
|
||||
bool fromMap(const QVariantMap &map, QList<AbstractAnalyzerSubConfig *> *subConfigs);
|
||||
|
||||
AnalyzerSettings(QObject *parent);
|
||||
QList<AbstractAnalyzerSubConfig *> m_subConfigs;
|
||||
};
|
||||
|
||||
|
||||
@@ -137,12 +145,12 @@ public:
|
||||
void readSettings();
|
||||
|
||||
void registerSubConfigs(AnalyzerSubConfigFactory globalFactory, AnalyzerSubConfigFactory projectFactory);
|
||||
QList<AnalyzerSubConfigFactory> projectSubConfigs() const;
|
||||
QList<AnalyzerSubConfigFactory> projectSubConfigFactories() const;
|
||||
|
||||
private:
|
||||
AnalyzerGlobalSettings(QObject *parent);
|
||||
static AnalyzerGlobalSettings *m_instance;
|
||||
QList<AnalyzerSubConfigFactory> m_projectSubConfigs;
|
||||
QList<AnalyzerSubConfigFactory> m_projectSubConfigFactories;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -161,12 +169,23 @@ class ANALYZER_EXPORT AnalyzerProjectSettings
|
||||
|
||||
public:
|
||||
AnalyzerProjectSettings(QObject *parent = 0);
|
||||
~AnalyzerProjectSettings();
|
||||
|
||||
QString displayName() const;
|
||||
virtual QVariantMap toMap() const;
|
||||
|
||||
bool isUsingGlobalSettings() const { return m_useGlobalSettings; }
|
||||
void setUsingGlobalSettings(bool value);
|
||||
void resetCustomToGlobalSettings();
|
||||
|
||||
QList<AbstractAnalyzerSubConfig *> customSubConfigs() const { return m_customConfigurations; }
|
||||
|
||||
protected:
|
||||
virtual bool fromMap(const QVariantMap &map);
|
||||
|
||||
private:
|
||||
bool m_useGlobalSettings;
|
||||
QList<AbstractAnalyzerSubConfig *> m_customConfigurations;
|
||||
};
|
||||
|
||||
} // namespace Analyzer
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user