Merge remote branch 'origin/2.1'
Conflicts: share/qtcreator/templates/mobileapp/app.pro share/qtcreator/templates/qmlapp/app.pro src/plugins/cpptools/cpptools.pro
3
dist/changes-2.1 → dist/changes-2.1.0
vendored
@@ -14,6 +14,9 @@ General
|
||||
Editing
|
||||
|
||||
C++ Support
|
||||
* Added semantic highlighting of types, virtual methods, locals, statics and
|
||||
member variables (only enabled when running against Qt 4.7.1 and up, for
|
||||
performance reasons)
|
||||
* Add new %FILENAME%, %CLASS% placeholders to license template
|
||||
|
||||
Project Support
|
||||
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 119 KiB |
BIN
doc/images/qtcreator-build-environment.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
doc/images/qtcreator-build-steps-custom.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 22 KiB |
BIN
doc/images/qtcreator-cpp-class-wizard.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 76 KiB |
@@ -1818,21 +1818,7 @@
|
||||
|
||||
You use wizards to create and import several types of projects and files, such
|
||||
as Qt GUI or console applications and Qt Quick applications.
|
||||
You can also use
|
||||
wizards to add individual files to your projects. For example, you can create
|
||||
the following types of files:
|
||||
|
||||
\list
|
||||
|
||||
\o Qt resource files, which allow you to store binary files in the
|
||||
application executable
|
||||
|
||||
\o \QD forms and Qt QML files, which specify parts of application user
|
||||
interfaces
|
||||
|
||||
\o C++ class, source, or header files
|
||||
|
||||
\endlist
|
||||
You can use wizards also to add individual files to your projects.
|
||||
|
||||
The wizards prompt you to enter the settings needed
|
||||
for that particular type of project and create the necessary files for you.
|
||||
@@ -1863,6 +1849,14 @@
|
||||
path.
|
||||
|
||||
\image qtcreator-intro-and-location.png
|
||||
|
||||
\o Select the Qt versions to use as build targets for your project, and click
|
||||
\gui{Next}.
|
||||
|
||||
\image qtcreator-new-project-qt-versions.png "Target setting dialog"
|
||||
|
||||
\note If you have only one Qt version installed, this dialog is skipped.
|
||||
|
||||
\o Specify the name of the class you want to create and using the
|
||||
drop-down menu select its base class type.
|
||||
|
||||
@@ -1878,10 +1872,43 @@
|
||||
\image qtcreator-new-project-summary.png
|
||||
\endlist
|
||||
|
||||
\section1 Adding Files to Projects
|
||||
|
||||
You can create the following types of files:
|
||||
|
||||
\list
|
||||
|
||||
\o Qt resource files, which allow you to store binary files in the
|
||||
application executable
|
||||
|
||||
\o \QD forms and Qt QML files, which specify parts of application user
|
||||
interfaces
|
||||
|
||||
\o C++ class, source, or header files
|
||||
|
||||
\o Text files
|
||||
|
||||
\endlist
|
||||
|
||||
\section2 Creating C++ Classes
|
||||
|
||||
The \gui {C++ Class Wizard} allows you to create a C++ header and source file for
|
||||
a new class that you can add to a C++ project. Specify the class name, base
|
||||
class, and header and source files for the class.
|
||||
|
||||
The wizard supports namespaces. To use a namespace, enter a qualified
|
||||
class name in the \gui {Class name} field. For example:
|
||||
MyNamespace::MySubNamespace::MyClass.
|
||||
|
||||
\image qtcreator-cpp-class-wizard.png "Enter Class Name dialog"
|
||||
|
||||
The names of the header and source file are based on the class name. To change the
|
||||
default suffix of a file, click \gui Configure.
|
||||
|
||||
You can create your own project and class wizards. For more information,
|
||||
see \l{Adding New Custom Wizards}.
|
||||
|
||||
\section1 Displaying Additional File Types in Projects Pane
|
||||
\section2 Displaying Additional File Types in Projects Pane
|
||||
|
||||
Qt Creator determines whether to display files from the project folder
|
||||
in the \gui Projects pane depending on the file type (.pro, .pri, .cpp,
|
||||
@@ -1900,6 +1927,35 @@
|
||||
|
||||
This also makes the files available in the \gui Locator.
|
||||
|
||||
\section1 Adding Subprojects to Projects
|
||||
|
||||
When you create a new project, you can add it to another project as a subproject
|
||||
in the \gui{Project Management} dialog. However, you first have to edit the
|
||||
.pro file of the parent project to specify that qmake uses the \c subdirs template
|
||||
to build the project.
|
||||
|
||||
The \c subdirs template creates a Makefile for building subprojects. They can be
|
||||
located either in subdirectories of the project directory or in any other directory.
|
||||
The location of the targets is specified using the SUBDIRS variable. If the project file
|
||||
has the same name as the directory, you can just specify the directory name. If the project
|
||||
name and directory name are different, you must specify the project file name (.pro).
|
||||
|
||||
For more information on the SUBDIRS variable, see the
|
||||
\l{http://doc.qt.nokia.com/4.7/qmake-variable-reference.html#subdirs}{qmake Variable Reference}.
|
||||
|
||||
For example, the following code specifies that plugin_coreplugin/plugin_coreplugin.pro
|
||||
and mylogin.pro belong to the project:
|
||||
|
||||
\code
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS = plugin_coreplugin \
|
||||
../another/plugin/myplugin.pro
|
||||
\endcode
|
||||
|
||||
To specify dependencies, use the \gui{Add Library} wizard. For more information,
|
||||
see \l{Adding Libraries to qmake Projects}.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@@ -2966,7 +3022,7 @@
|
||||
\note Shadow building is not supported by the Symbian build system.
|
||||
Also, shadow building on Windows is not supported for Maemo.
|
||||
If you only build for one target platform, you can deselect
|
||||
the \gui{Shadow Build} checkbox.
|
||||
the \gui{Shadow build} checkbox.
|
||||
\endlist
|
||||
\endlist
|
||||
|
||||
@@ -2979,6 +3035,23 @@
|
||||
|
||||
\image qtcreator-build-steps.png "Build steps"
|
||||
|
||||
\section2 Adding Custom Build Steps
|
||||
|
||||
To add custom steps to the build settings, select \gui {Add Build Step >
|
||||
Custom Process Step}.
|
||||
|
||||
By default, custom steps are disabled. To activate a custom step, select
|
||||
the \gui{Enable custom process step} check-box.
|
||||
|
||||
\image qtcreator-build-steps-custom.png "Custom Process Step"
|
||||
|
||||
You can use any environment variables as values in the fields. For a list
|
||||
of variable names, click \gui {Build Environment > Details}. You can specify
|
||||
variables as ${VARNAME} or %VARNAME%. For example, ${BUILDDIR} or %BUILDDIR%.
|
||||
|
||||
\note Qt Creator sets SOURCEDIR and BUILDDIR as part of the build environment.
|
||||
For more information, see \l{Build Environment}.
|
||||
|
||||
\section1 Clean Steps
|
||||
|
||||
You can use the cleaning process to remove intermediate files. This process
|
||||
@@ -2990,10 +3063,10 @@
|
||||
You can define the cleaning steps for your builds in the \gui{Clean Steps}:
|
||||
\list
|
||||
\o To add a clean step using make or a custom process, click
|
||||
\gui{Add clean step} and select the type of step you want to add.
|
||||
\gui{Add Clean Step} and select the type of step you want to add.
|
||||
|
||||
By default, custom steps are disabled. Activate custom steps by
|
||||
checking the \gui{Enable custom process step} check-box.
|
||||
By default, custom steps are disabled. To activate a custom step,
|
||||
select the \gui{Enable custom process step} check-box.
|
||||
\o To remove a clean step, click \gui{Remove Item}.
|
||||
\o To change the order of steps, click
|
||||
\inlineimage qtcreator-movestep.png
|
||||
@@ -3010,6 +3083,8 @@
|
||||
variables or add, reset and unset new variables based on your project
|
||||
requirements.
|
||||
|
||||
\image qtcreator-build-environment.png "Build Environment"
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@@ -4610,17 +4685,21 @@
|
||||
\title Managing Sessions
|
||||
|
||||
When you exit Qt Creator, a snapshot of your current workspace is stored
|
||||
as a session.
|
||||
A session is a collection of:
|
||||
as a \e session. A session is an arbitrary collection of:
|
||||
|
||||
\list
|
||||
\o Open projects with their dependencies
|
||||
\o Open projects with their dependencies (including SUBDIRS projects)
|
||||
\o Open editors
|
||||
\o Breakpoints and watches
|
||||
\o Bookmarks
|
||||
\endlist
|
||||
|
||||
If you work on a project and need to switch to another project for a
|
||||
A session is personal, that is, not meant to be shared. It is not
|
||||
supposed to reflect the project structure. It contains personal data, such as
|
||||
bookmarks and breakpoints that are usually not of interest to other developers
|
||||
working on the same projects.
|
||||
|
||||
For example, if you work on a project and need to switch to another project for a
|
||||
while, you can save your workspace as a session. This makes it easier
|
||||
to return to working on the first project later.
|
||||
|
||||
|
||||
@@ -31,6 +31,26 @@ defineReplace(qtLibraryName) {
|
||||
return($$RET)
|
||||
}
|
||||
|
||||
defineTest(minQtVersion) {
|
||||
maj = $$1
|
||||
min = $$2
|
||||
patch = $$3
|
||||
isEqual(QT_MAJOR_VERSION, $$maj) {
|
||||
isEqual(QT_MINOR_VERSION, $$min) {
|
||||
isEqual(QT_PATCH_VERSION, $$patch) {
|
||||
return(true)
|
||||
}
|
||||
greaterThan(QT_PATCH_VERSION, $$patch) {
|
||||
return(true)
|
||||
}
|
||||
}
|
||||
greaterThan(QT_MINOR_VERSION, $$min) {
|
||||
return(true)
|
||||
}
|
||||
}
|
||||
return(false)
|
||||
}
|
||||
|
||||
# For use in custom compilers which just copy files
|
||||
win32:i_flag = i
|
||||
defineReplace(stripSrcDir) {
|
||||
|
||||
@@ -693,7 +693,8 @@ def makeValue(type, init):
|
||||
type = stripClassTag(type)
|
||||
if type.find(":") >= 0:
|
||||
type = "'" + type + "'"
|
||||
gdb.execute("set $d = (%s*)malloc(sizeof(%s))" % (type, type))
|
||||
# Avoid malloc symbol clash with QVector
|
||||
gdb.execute("set $d = (%s*)calloc(sizeof(%s), 1)" % (type, type))
|
||||
gdb.execute("set *$d = {%s}" % init)
|
||||
value = parseAndEvaluate("$d").dereference()
|
||||
#warn(" TYPE: %s" % value.type)
|
||||
|
||||
@@ -723,7 +723,8 @@ def qdump__QObject(d, item):
|
||||
if d.isExpandedIName(item.iname + ".properties"):
|
||||
# FIXME: Make this global. Don't leak.
|
||||
variant = "'%sQVariant'" % d.ns
|
||||
gdb.execute("set $d = (%s*)malloc(sizeof(%s))" % (variant, variant))
|
||||
# Avoid malloc symbol clash with QVector
|
||||
gdb.execute("set $d = (%s*)calloc(sizeof(%s), 1)" % (variant, variant))
|
||||
gdb.execute("set $d.d.is_shared = 0")
|
||||
|
||||
with Children(d, [propertyCount, 500]):
|
||||
@@ -769,7 +770,8 @@ def qdump__QObject(d, item):
|
||||
# % (d.ns, item.value.address, propertyName)
|
||||
#exp = '"((\'%sQObject\'*)%s)"' % (d.ns, item.value.address,)
|
||||
#warn("EXPRESSION: %s" % exp)
|
||||
value = call(item.value, 'property("%s")' % propertyName)
|
||||
value = call(item.value, 'property(%s)'
|
||||
% cleanAddress(metaStringData + metaData[offset]))
|
||||
value1 = value["d"]
|
||||
#warn(" CODE: %s" % value1["type"])
|
||||
# Type 1 and 2 are bool and int. Try to save a few cycles in this case:
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
This is Creator's default directory for syntax highlight definitions.
|
||||
You can download them through the Generic Highlighter options dialog.
|
||||
@@ -1,6 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module>
|
||||
<type name="QmlProject.Project">
|
||||
<exports>
|
||||
<export module="QmlProject" version="1.0" type="Project"/>
|
||||
</exports>
|
||||
<property name="sourceDirectory" type="string"/>
|
||||
<property name="importPaths" type="string" isList="true"/>
|
||||
<property name="content" type="QmlProjectItem" isList="true"/>
|
||||
@@ -14,14 +17,26 @@
|
||||
<property name="files" type="string" isList="true"/>
|
||||
</type>
|
||||
<type name="QmlProject.QmlFiles" extends="FileFilterBaseItem">
|
||||
<exports>
|
||||
<export module="QmlProject" version="1.0" type="QmlFiles"/>
|
||||
</exports>
|
||||
</type>
|
||||
<type name="QmlProject.JavaScriptFiles" extends="FileFilterBaseItem">
|
||||
<exports>
|
||||
<export module="QmlProject" version="1.0" type="JavaScriptFiles"/>
|
||||
</exports>
|
||||
<property name="filter" type="string"/>
|
||||
</type>
|
||||
<type name="QmlProject.ImageFiles" extends="FileFilterBaseItem">
|
||||
<exports>
|
||||
<export module="QmlProject" version="1.0" type="ImageFiles"/>
|
||||
</exports>
|
||||
<property name="filter" type="string"/>
|
||||
</type>
|
||||
<type name="QmlProject.CssFiles" extends="FileFilterBaseItem">
|
||||
<exports>
|
||||
<export module="QmlProject" version="1.0" type="CssFiles"/>
|
||||
</exports>
|
||||
<property name="filter" type="string"/>
|
||||
</type>
|
||||
</module>
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module>
|
||||
<type name="QDeclarativeViewer.Screen">
|
||||
<exports>
|
||||
<export module="QDeclarativeViewer" version="1.0" type="Screen"/>
|
||||
</exports>
|
||||
<enum name="Orientation">
|
||||
<enumerator name="UnknownOrientation" value="0"/>
|
||||
<enumerator name="Portrait" value="1"/>
|
||||
|
||||
@@ -15,15 +15,15 @@
|
||||
#include <QtDeclarative/private/qdeclarativeopenmetaobject_p.h>
|
||||
#include <QtDeclarative/QDeclarativeView>
|
||||
|
||||
static QHash<QByteArray, const QDeclarativeType *> qmlTypeByCppName;
|
||||
static QHash<QByteArray, QByteArray> cppToQml;
|
||||
static QHash<QByteArray, QList<const QDeclarativeType *> > qmlTypesByCppName;
|
||||
static QHash<QByteArray, QByteArray> cppToId;
|
||||
|
||||
QByteArray convertToQmlType(const QByteArray &cppName)
|
||||
QByteArray convertToId(const QByteArray &cppName)
|
||||
{
|
||||
QByteArray qmlName = cppToQml.value(cppName, cppName);
|
||||
qmlName.replace("::", ".");
|
||||
qmlName.replace("/", ".");
|
||||
return qmlName;
|
||||
QByteArray idName = cppToId.value(cppName, cppName);
|
||||
idName.replace("::", ".");
|
||||
idName.replace("/", ".");
|
||||
return idName;
|
||||
}
|
||||
|
||||
void erasure(QByteArray *typeName, bool *isList, bool *isPointer)
|
||||
@@ -41,7 +41,7 @@ void erasure(QByteArray *typeName, bool *isList, bool *isPointer)
|
||||
erasure(typeName, isList, isPointer);
|
||||
}
|
||||
|
||||
*typeName = convertToQmlType(*typeName);
|
||||
*typeName = convertToId(*typeName);
|
||||
}
|
||||
|
||||
void processMetaObject(const QMetaObject *meta, QSet<const QMetaObject *> *metas)
|
||||
@@ -132,7 +132,7 @@ void dump(const QMetaMethod &meth, QXmlStreamWriter *xml)
|
||||
|
||||
attributes.append(QXmlStreamAttribute("name", name));
|
||||
|
||||
const QString typeName = convertToQmlType(meth.typeName());
|
||||
const QString typeName = convertToId(meth.typeName());
|
||||
if (! typeName.isEmpty())
|
||||
attributes.append(QXmlStreamAttribute("type", typeName));
|
||||
|
||||
@@ -187,16 +187,12 @@ public:
|
||||
|
||||
void dump(const QMetaObject *meta, QXmlStreamWriter *xml)
|
||||
{
|
||||
QByteArray qmlTypeName = convertToQmlType(meta->className());
|
||||
QByteArray id = convertToId(meta->className());
|
||||
|
||||
xml->writeStartElement("type");
|
||||
|
||||
QXmlStreamAttributes attributes;
|
||||
attributes.append(QXmlStreamAttribute("name", qmlTypeName));
|
||||
|
||||
if (const QDeclarativeType *qmlTy = qmlTypeByCppName.value(meta->className())) {
|
||||
attributes.append(QXmlStreamAttribute("version", QString("%1.%2").arg(qmlTy->majorVersion()).arg(qmlTy->minorVersion())));
|
||||
}
|
||||
attributes.append(QXmlStreamAttribute("name", id));
|
||||
|
||||
for (int index = meta->classInfoCount() - 1 ; index >= 0 ; --index) {
|
||||
QMetaClassInfo classInfo = meta->classInfo(index);
|
||||
@@ -206,16 +202,31 @@ void dump(const QMetaObject *meta, QXmlStreamWriter *xml)
|
||||
}
|
||||
}
|
||||
|
||||
QString version;
|
||||
|
||||
if (meta->superClass())
|
||||
attributes.append(QXmlStreamAttribute("extends", convertToQmlType(meta->superClass()->className())));
|
||||
|
||||
if (! version.isEmpty())
|
||||
attributes.append(QXmlStreamAttribute("version", version));
|
||||
attributes.append(QXmlStreamAttribute("extends", convertToId(meta->superClass()->className())));
|
||||
|
||||
xml->writeAttributes(attributes);
|
||||
|
||||
QList<const QDeclarativeType *> qmlTypes = qmlTypesByCppName.value(id);
|
||||
if (!qmlTypes.isEmpty()) {
|
||||
xml->writeStartElement("exports");
|
||||
foreach (const QDeclarativeType *qmlTy, qmlTypes) {
|
||||
QXmlStreamAttributes moduleAttributes;
|
||||
const QString qmlTyName = qmlTy->qmlTypeName();
|
||||
int slashIdx = qmlTyName.lastIndexOf(QLatin1Char('/'));
|
||||
if (slashIdx == -1)
|
||||
continue;
|
||||
const QString moduleName = qmlTyName.left(slashIdx);
|
||||
const QString typeName = qmlTyName.mid(slashIdx + 1);
|
||||
moduleAttributes.append(QXmlStreamAttribute("module", moduleName));
|
||||
moduleAttributes.append(QXmlStreamAttribute("version", QString("%1.%2").arg(qmlTy->majorVersion()).arg(qmlTy->minorVersion())));
|
||||
moduleAttributes.append(QXmlStreamAttribute("type", typeName));
|
||||
xml->writeEmptyElement("export");
|
||||
xml->writeAttributes(moduleAttributes);
|
||||
}
|
||||
xml->writeEndElement();
|
||||
}
|
||||
|
||||
for (int index = meta->enumeratorOffset(); index < meta->enumeratorCount(); ++index)
|
||||
dump(meta->enumerator(index), xml);
|
||||
|
||||
@@ -234,7 +245,7 @@ void writeEasingCurve(QXmlStreamWriter *xml)
|
||||
{
|
||||
QXmlStreamAttributes attributes;
|
||||
attributes.append(QXmlStreamAttribute("name", "QEasingCurve"));
|
||||
attributes.append(QXmlStreamAttribute("extends", "Qt.Easing"));
|
||||
attributes.append(QXmlStreamAttribute("extends", "QDeclarativeEasingValueType"));
|
||||
xml->writeAttributes(attributes);
|
||||
}
|
||||
|
||||
@@ -262,8 +273,22 @@ int main(int argc, char *argv[])
|
||||
if (!pluginImportPath.isEmpty())
|
||||
engine->addImportPath(pluginImportPath);
|
||||
|
||||
bool hasQtQuickModule = false;
|
||||
{
|
||||
QByteArray code = "import QtQuick 1.0; Item {}";
|
||||
QDeclarativeComponent c(engine);
|
||||
c.setData(code, QUrl("xxx"));
|
||||
c.create();
|
||||
if (c.errors().isEmpty()) {
|
||||
hasQtQuickModule = true;
|
||||
}
|
||||
}
|
||||
|
||||
QByteArray importCode;
|
||||
importCode += "import Qt 4.7;\n";
|
||||
if (hasQtQuickModule) {
|
||||
importCode += "import QtQuick 1.0;\n";
|
||||
}
|
||||
if (pluginImportName.isEmpty()) {
|
||||
importCode += "import Qt.labs.particles 4.7;\n";
|
||||
importCode += "import Qt.labs.gestures 4.7;\n";
|
||||
@@ -284,25 +309,25 @@ int main(int argc, char *argv[])
|
||||
qDebug() << c.errorString();
|
||||
}
|
||||
|
||||
cppToQml.insert("QString", "string");
|
||||
cppToQml.insert("QDeclarativeEasingValueType::Type", "Type");
|
||||
cppToId.insert("QString", "string");
|
||||
cppToId.insert("QDeclarativeEasingValueType::Type", "Type");
|
||||
|
||||
QSet<const QMetaObject *> metas;
|
||||
|
||||
metas.insert(FriendlyQObject::qtMeta());
|
||||
|
||||
QMultiHash<QByteArray, QByteArray> extensions;
|
||||
QHash<QByteArray, QSet<QByteArray> > extensions;
|
||||
foreach (const QDeclarativeType *ty, QDeclarativeMetaType::qmlTypes()) {
|
||||
qmlTypeByCppName.insert(ty->metaObject()->className(), ty);
|
||||
qmlTypesByCppName[ty->metaObject()->className()].append(ty);
|
||||
if (ty->isExtendedType()) {
|
||||
extensions.insert(ty->typeName(), ty->metaObject()->className());
|
||||
extensions[ty->typeName()].insert(ty->metaObject()->className());
|
||||
} else {
|
||||
cppToQml.insert(ty->metaObject()->className(), ty->qmlTypeName());
|
||||
cppToId.insert(ty->metaObject()->className(), ty->metaObject()->className());
|
||||
}
|
||||
processDeclarativeType(ty, &metas);
|
||||
}
|
||||
|
||||
// Adjust qml names of extended objects.
|
||||
// Adjust ids of extended objects.
|
||||
// The chain ends up being:
|
||||
// __extended__.originalname - the base object
|
||||
// __extension_0_.originalname - first extension
|
||||
@@ -310,14 +335,19 @@ int main(int argc, char *argv[])
|
||||
// __extension_n-2_.originalname - second to last extension
|
||||
// originalname - last extension
|
||||
foreach (const QByteArray &extendedCpp, extensions.keys()) {
|
||||
const QByteArray extendedQml = cppToQml.value(extendedCpp);
|
||||
cppToQml.insert(extendedCpp, "__extended__." + extendedQml);
|
||||
QList<QByteArray> extensionCppNames = extensions.values(extendedCpp);
|
||||
for (int i = 0; i < extensionCppNames.size() - 1; ++i) {
|
||||
QByteArray adjustedName = QString("__extension__%1.%2").arg(QString::number(i), QString(extendedQml)).toAscii();
|
||||
cppToQml.insert(extensionCppNames.value(i), adjustedName);
|
||||
const QByteArray extendedId = cppToId.value(extendedCpp);
|
||||
cppToId.insert(extendedCpp, "__extended__." + extendedId);
|
||||
QSet<QByteArray> extensionCppNames = extensions.value(extendedCpp);
|
||||
int c = 0;
|
||||
foreach (const QByteArray &extensionCppName, extensionCppNames) {
|
||||
if (c != extensionCppNames.size() - 1) {
|
||||
QByteArray adjustedName = QString("__extension__%1.%2").arg(QString::number(c), QString(extendedId)).toAscii();
|
||||
cppToId.insert(extensionCppName, adjustedName);
|
||||
} else {
|
||||
cppToId.insert(extensionCppName, extendedId);
|
||||
}
|
||||
++c;
|
||||
}
|
||||
cppToQml.insert(extensionCppNames.last(), extendedQml);
|
||||
}
|
||||
|
||||
foreach (const QDeclarativeType *ty, QDeclarativeMetaType::qmlTypes()) {
|
||||
@@ -350,13 +380,13 @@ int main(int argc, char *argv[])
|
||||
|
||||
QMap<QString, const QMetaObject *> nameToMeta;
|
||||
foreach (const QMetaObject *meta, metas) {
|
||||
nameToMeta.insert(convertToQmlType(meta->className()), meta);
|
||||
nameToMeta.insert(convertToId(meta->className()), meta);
|
||||
}
|
||||
foreach (const QMetaObject *meta, nameToMeta) {
|
||||
dump(meta, &xml);
|
||||
}
|
||||
|
||||
// define QEasingCurve as an extension of Qt.Easing
|
||||
// define QEasingCurve as an extension of QDeclarativeEasingValueType
|
||||
writeEasingCurve(&xml);
|
||||
|
||||
xml.writeEndElement();
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#include "abstractformeditortool.h"
|
||||
#include "qdeclarativeviewobserver.h"
|
||||
#include "qdeclarativeviewobserver_p.h"
|
||||
#include "../qdeclarativeviewobserver_p.h"
|
||||
|
||||
#include <QDeclarativeEngine>
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
#include "rubberbandselectionmanipulator.h"
|
||||
#include "qdeclarativeviewobserver_p.h"
|
||||
#include "../qdeclarativeviewobserver_p.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
#include "selectionindicator.h"
|
||||
#include "qdeclarativeviewobserver_p.h"
|
||||
#include "../qdeclarativeviewobserver_p.h"
|
||||
#include "qmlobserverconstants.h"
|
||||
|
||||
#include <QPen>
|
||||
@@ -97,11 +97,11 @@ void SelectionIndicator::setItems(const QList<QWeakPointer<QGraphicsObject> > &i
|
||||
|
||||
// set selections to also all children if they are not editor items
|
||||
|
||||
foreach (QWeakPointer<QGraphicsObject> obj, itemList) {
|
||||
if (obj.isNull())
|
||||
foreach (QWeakPointer<QGraphicsObject> object, itemList) {
|
||||
if (object.isNull())
|
||||
continue;
|
||||
|
||||
QGraphicsItem *item = obj.data();
|
||||
QGraphicsItem *item = object.data();
|
||||
|
||||
QGraphicsPolygonItem *newSelectionIndicatorGraphicsItem = new QGraphicsPolygonItem(m_layerItem.data());
|
||||
if (!m_indicatorShapeHash.contains(item)) {
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
#include "layeritem.h"
|
||||
|
||||
//#include "resizehandleitem.h"
|
||||
#include "qdeclarativeviewobserver_p.h"
|
||||
#include "../qdeclarativeviewobserver_p.h"
|
||||
|
||||
#include <QDeclarativeEngine>
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#include "singleselectionmanipulator.h"
|
||||
#include "qdeclarativeviewobserver.h"
|
||||
#include "qdeclarativeviewobserver_p.h"
|
||||
#include "../qdeclarativeviewobserver_p.h"
|
||||
#include <QtDebug>
|
||||
|
||||
namespace QmlJSDebugger {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "subcomponenteditortool.h"
|
||||
#include "qdeclarativeviewobserver_p.h"
|
||||
#include "../qdeclarativeviewobserver_p.h"
|
||||
#include "subcomponentmasklayeritem.h"
|
||||
#include "layeritem.h"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "zoomtool.h"
|
||||
#include "qdeclarativeviewobserver_p.h"
|
||||
#include "../qdeclarativeviewobserver_p.h"
|
||||
|
||||
#include <QMouseEvent>
|
||||
#include <QWheelEvent>
|
||||
|
||||
@@ -57,9 +57,10 @@
|
||||
#include <QtScript/QScriptValue>
|
||||
#include <QtCore/QEventLoop>
|
||||
#include <QtCore/QSet>
|
||||
#include <private/qdeclarativedebugservice_p.h>
|
||||
#include <QtCore/QStringList>
|
||||
|
||||
#include "qt_private/qdeclarativedebugservice_p.h"
|
||||
|
||||
#include "qmljsdebugger_global.h"
|
||||
|
||||
QT_FORWARD_DECLARE_CLASS(QScriptContext);
|
||||
@@ -103,7 +104,7 @@ public:
|
||||
const QVariant &argument = QVariant());
|
||||
|
||||
void messageReceived(const QByteArray &);
|
||||
void enabledChanged(bool);
|
||||
void statusChanged(Status status);
|
||||
|
||||
public slots:
|
||||
// void pauses();
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#ifndef QDECLARATIVEDESIGNDEBUGSERVER_H
|
||||
#define QDECLARATIVEDESIGNDEBUGSERVER_H
|
||||
|
||||
#include <private/qdeclarativedebugservice_p.h>
|
||||
#include "qt_private/qdeclarativedebugservice_p.h"
|
||||
#include "qmlobserverconstants.h"
|
||||
#include "qmljsdebugger_global.h"
|
||||
|
||||
@@ -70,6 +70,8 @@ public:
|
||||
void reloaded();
|
||||
QString idStringForObject(QObject *obj) const;
|
||||
|
||||
void sendMessage(const QByteArray &message);
|
||||
|
||||
public Q_SLOTS:
|
||||
void selectedColorChanged(const QColor &color);
|
||||
void contextPathUpdated(const QStringList &contextPath);
|
||||
@@ -98,7 +100,7 @@ Q_SIGNALS:
|
||||
void clearComponentCacheRequested();
|
||||
|
||||
protected:
|
||||
virtual void enabledChanged(bool enabled);
|
||||
virtual void statusChanged(Status status);
|
||||
virtual void messageReceived(const QByteArray &);
|
||||
|
||||
private:
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** All rights reserved.
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** This file is part of the QtDeclarative module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** No Commercial Usage
|
||||
** This file contains pre-release code and may not be distributed.
|
||||
** You may use this file in accordance with the terms and conditions
|
||||
** contained in the Technology Preview License Agreement accompanying
|
||||
** this package.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** If you have questions regarding the use of this file, please contact
|
||||
** Nokia at qt-info@nokia.com.
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QDECLARATIVEDEBUGHELPER_P_H
|
||||
#define QDECLARATIVEDEBUGHELPER_P_H
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
QT_BEGIN_HEADER
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QScriptEngine;
|
||||
class QDeclarativeEngine;
|
||||
|
||||
// Helper methods to access private API through a stable interface
|
||||
// This is used in the qmljsdebugger library of QtCreator.
|
||||
class Q_DECLARATIVE_EXPORT QDeclarativeDebugHelper
|
||||
{
|
||||
public:
|
||||
static QScriptEngine *getScriptEngine(QDeclarativeEngine *engine);
|
||||
static void setAnimationSlowDownFactor(qreal factor);
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
QT_END_HEADER
|
||||
|
||||
#endif // QDECLARATIVEDEBUGHELPER_P_H
|
||||
@@ -0,0 +1,92 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** All rights reserved.
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** This file is part of the QtDeclarative module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** No Commercial Usage
|
||||
** This file contains pre-release code and may not be distributed.
|
||||
** You may use this file in accordance with the terms and conditions
|
||||
** contained in the Technology Preview License Agreement accompanying
|
||||
** this package.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** If you have questions regarding the use of this file, please contact
|
||||
** Nokia at qt-info@nokia.com.
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QDECLARATIVEDEBUGSERVICE_H
|
||||
#define QDECLARATIVEDEBUGSERVICE_H
|
||||
|
||||
#include <QtCore/qobject.h>
|
||||
|
||||
QT_BEGIN_HEADER
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QT_MODULE(Declarative)
|
||||
|
||||
class QDeclarativeDebugServicePrivate;
|
||||
class Q_DECLARATIVE_EXPORT QDeclarativeDebugService : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_DECLARE_PRIVATE(QDeclarativeDebugService)
|
||||
Q_DISABLE_COPY(QDeclarativeDebugService)
|
||||
|
||||
public:
|
||||
explicit QDeclarativeDebugService(const QString &, QObject *parent = 0);
|
||||
~QDeclarativeDebugService();
|
||||
|
||||
QString name() const;
|
||||
|
||||
enum Status { NotConnected, Unavailable, Enabled };
|
||||
Status status() const;
|
||||
|
||||
void sendMessage(const QByteArray &);
|
||||
|
||||
static int idForObject(QObject *);
|
||||
static QObject *objectForId(int);
|
||||
|
||||
static QString objectToString(QObject *obj);
|
||||
|
||||
static bool isDebuggingEnabled();
|
||||
static bool hasDebuggingClient();
|
||||
|
||||
protected:
|
||||
virtual void statusChanged(Status);
|
||||
virtual void messageReceived(const QByteArray &);
|
||||
|
||||
private:
|
||||
friend class QDeclarativeDebugServer;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
QT_END_HEADER
|
||||
|
||||
#endif // QDECLARATIVEDEBUGSERVICE_H
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "jsdebuggeragent.h"
|
||||
#include "qt_private/qdeclarativedebughelper_p.h"
|
||||
|
||||
#include <QtCore/qcoreapplication.h>
|
||||
#include <QtCore/qset.h>
|
||||
@@ -49,7 +50,6 @@
|
||||
#include <QtCore/QUrl>
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtScript/qscriptvalueiterator.h>
|
||||
#include <private/qdeclarativeengine_p.h>
|
||||
|
||||
namespace QmlJSDebugger {
|
||||
|
||||
@@ -193,7 +193,7 @@ JSDebuggerAgent::JSDebuggerAgent(QScriptEngine *engine)
|
||||
|
||||
JSDebuggerAgent::JSDebuggerAgent(QDeclarativeEngine *engine)
|
||||
: QDeclarativeDebugService("JSDebugger")
|
||||
, QScriptEngineAgent(QDeclarativeEnginePrivate::getScriptEngine(engine))
|
||||
, QScriptEngineAgent(QDeclarativeDebugHelper::getScriptEngine(engine))
|
||||
, state(NoState)
|
||||
{}
|
||||
|
||||
@@ -511,9 +511,9 @@ void JSDebuggerAgent::continueExec()
|
||||
loop.quit();
|
||||
}
|
||||
|
||||
void JSDebuggerAgent::enabledChanged(bool on)
|
||||
void JSDebuggerAgent::statusChanged(Status status)
|
||||
{
|
||||
engine()->setAgent(on ? this : 0);
|
||||
engine()->setAgent((status == QDeclarativeDebugService::Enabled) ? this : 0);
|
||||
}
|
||||
|
||||
} // namespace QmlJSDebugger
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
# Try to find location of Qt private headers (see README)
|
||||
isEmpty(QT_PRIVATE_HEADERS) {
|
||||
QT_PRIVATE_HEADERS = $$[QT_INSTALL_HEADERS]
|
||||
}
|
||||
|
||||
INCLUDEPATH += \
|
||||
$${QT_PRIVATE_HEADERS} \
|
||||
$${QT_PRIVATE_HEADERS}/QtCore \
|
||||
$${QT_PRIVATE_HEADERS}/QtGui \
|
||||
$${QT_PRIVATE_HEADERS}/QtScript \
|
||||
$${QT_PRIVATE_HEADERS}/QtDeclarative
|
||||
DEPENDPATH += \
|
||||
$${QT_PRIVATE_HEADERS} \
|
||||
$${QT_PRIVATE_HEADERS}/QtCore \
|
||||
$${QT_PRIVATE_HEADERS}/QtGui \
|
||||
$${QT_PRIVATE_HEADERS}/QtScript \
|
||||
$${QT_PRIVATE_HEADERS}/QtDeclarative
|
||||
@@ -60,9 +60,9 @@ QDeclarativeObserverService *QDeclarativeObserverService::instance()
|
||||
return serviceInstance();
|
||||
}
|
||||
|
||||
void QDeclarativeObserverService::enabledChanged(bool enabled)
|
||||
void QDeclarativeObserverService::statusChanged(Status status)
|
||||
{
|
||||
emit debuggingClientChanged(enabled);
|
||||
emit debuggingClientChanged((status == Enabled));
|
||||
}
|
||||
|
||||
void QDeclarativeObserverService::messageReceived(const QByteArray &message)
|
||||
@@ -236,4 +236,12 @@ QString QDeclarativeObserverService::idStringForObject(QObject *obj) const
|
||||
return idString;
|
||||
}
|
||||
|
||||
void QDeclarativeObserverService::sendMessage(const QByteArray &message)
|
||||
{
|
||||
if (status() != Enabled)
|
||||
return;
|
||||
|
||||
QDeclarativeDebugService::sendMessage(message);
|
||||
}
|
||||
|
||||
} // namespace QmlJSDebugger
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
#include "qmltoolbar.h"
|
||||
#include "jsdebuggeragent.h"
|
||||
|
||||
#include "qt_private/qdeclarativedebughelper_p.h"
|
||||
|
||||
#include <QDeclarativeItem>
|
||||
#include <QDeclarativeEngine>
|
||||
#include <QDeclarativeContext>
|
||||
@@ -47,10 +49,7 @@
|
||||
#include <QMouseEvent>
|
||||
#include <QGraphicsObject>
|
||||
#include <QApplication>
|
||||
|
||||
#include <QAbstractAnimation>
|
||||
#include <private/qdeclarativeengine_p.h>
|
||||
#include <private/qabstractanimation_p.h>
|
||||
|
||||
namespace QmlJSDebugger {
|
||||
|
||||
@@ -118,9 +117,6 @@ QDeclarativeViewObserver::QDeclarativeViewObserver(QDeclarativeView *view, QObje
|
||||
data->createToolbar();
|
||||
|
||||
data->_q_changeToSingleSelectTool();
|
||||
|
||||
// always start debug mode - that's what this design view is for.
|
||||
setDebugMode(true);
|
||||
}
|
||||
|
||||
QDeclarativeViewObserver::~QDeclarativeViewObserver()
|
||||
@@ -626,11 +622,13 @@ void QDeclarativeViewObserver::continueExecution(qreal slowdownFactor)
|
||||
|
||||
data->slowdownFactor = slowdownFactor;
|
||||
static const qreal animSpeedSnapDelta = 0.01f;
|
||||
bool useStandardSpeed = (qAbs(1.0f - data->slowdownFactor) < animSpeedSnapDelta);
|
||||
|
||||
QUnifiedTimer *timer = QUnifiedTimer::instance();
|
||||
timer->setSlowdownFactor(data->slowdownFactor);
|
||||
timer->setSlowModeEnabled(!useStandardSpeed);
|
||||
qreal slowDownFactor = data->slowdownFactor;
|
||||
if (qAbs(1.0f - slowDownFactor) < animSpeedSnapDelta) {
|
||||
slowDownFactor = 1.0f;
|
||||
}
|
||||
|
||||
QDeclarativeDebugHelper::setAnimationSlowDownFactor(slowDownFactor);
|
||||
data->executionPaused = false;
|
||||
|
||||
emit executionStarted(data->slowdownFactor);
|
||||
@@ -639,9 +637,7 @@ void QDeclarativeViewObserver::continueExecution(qreal slowdownFactor)
|
||||
|
||||
void QDeclarativeViewObserver::pauseExecution()
|
||||
{
|
||||
QUnifiedTimer *timer = QUnifiedTimer::instance();
|
||||
timer->setSlowdownFactor(0);
|
||||
timer->setSlowModeEnabled(true);
|
||||
QDeclarativeDebugHelper::setAnimationSlowDownFactor(0.0f);
|
||||
data->executionPaused = true;
|
||||
|
||||
emit executionPaused();
|
||||
@@ -796,7 +792,7 @@ void QDeclarativeViewObserverPrivate::createToolbar()
|
||||
void QDeclarativeViewObserver::setDebugMode(bool isDebugMode)
|
||||
{
|
||||
if (isDebugMode && !data->jsDebuggerAgent)
|
||||
data->jsDebuggerAgent = new JSDebuggerAgent(QDeclarativeEnginePrivate::getScriptEngine(data->view->engine()));
|
||||
data->jsDebuggerAgent = new JSDebuggerAgent(data->view->engine());
|
||||
}
|
||||
|
||||
} //namespace QmlJSDebugger
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef QDECLARATIVEDESIGNVIEW_P_H
|
||||
#define QDECLARATIVEDESIGNVIEW_P_H
|
||||
#ifndef QDECLARATIVEVIEWOBSERVER_P_H
|
||||
#define QDECLARATIVEVIEWOBSERVER_P_H
|
||||
|
||||
#include <QWeakPointer>
|
||||
#include <QPointF>
|
||||
@@ -138,4 +138,4 @@ public:
|
||||
|
||||
} // namespace QmlJSDebugger
|
||||
|
||||
#endif // QDECLARATIVEDESIGNVIEW_P_H
|
||||
#endif // QDECLARATIVEVIEWOBSERVER_P_H
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
QT += declarative script
|
||||
INCLUDEPATH += $$PWD $$PWD/include editor
|
||||
DEPENDPATH += $$PWD $$PWD/include editor
|
||||
INCLUDEPATH += $$PWD/include
|
||||
DEPENDPATH += $$PWD $$PWD/include editor $$PWD/qt-private
|
||||
|
||||
contains(CONFIG, dll) {
|
||||
DEFINES += BUILD_QMLJSDEBUGGER_LIB
|
||||
@@ -8,28 +8,28 @@ contains(CONFIG, dll) {
|
||||
DEFINES += BUILD_QMLJSDEBUGGER_STATIC_LIB
|
||||
}
|
||||
|
||||
include($$PWD/private_headers.pri)
|
||||
|
||||
## Input
|
||||
HEADERS += \
|
||||
$$PWD/include/jsdebuggeragent.h \
|
||||
$$PWD/include/qmljsdebugger_global.h
|
||||
include/jsdebuggeragent.h \
|
||||
include/qmljsdebugger_global.h \
|
||||
include/qt_private/qdeclarativedebughelper_p.h \
|
||||
include/qt_private/qdeclarativedebugservice_p.h
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/jsdebuggeragent.cpp
|
||||
jsdebuggeragent.cpp
|
||||
|
||||
contains(DEFINES, QMLOBSERVER) {
|
||||
include($$PWD/editor/editor.pri)
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/include/qdeclarativeviewobserver.h \
|
||||
$$PWD/include/qdeclarativeobserverservice.h \
|
||||
$$PWD/include/qmlobserverconstants.h \
|
||||
$$PWD/qdeclarativeviewobserver_p.h
|
||||
include/qdeclarativeviewobserver.h \
|
||||
include/qdeclarativeobserverservice.h \
|
||||
include/qmlobserverconstants.h \
|
||||
qdeclarativeviewobserver_p.h
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/qdeclarativeviewobserver.cpp \
|
||||
$$PWD/qdeclarativeobserverservice.cpp
|
||||
qdeclarativeviewobserver.cpp \
|
||||
qdeclarativeobserverservice.cpp
|
||||
}
|
||||
|
||||
OTHER_FILES += $$PWD/qmljsdebugger.pri
|
||||
OTHER_FILES += qmljsdebugger.pri
|
||||
|
||||
@@ -16,8 +16,6 @@ exists($$PWD/qmljsdebugger/qmljsdebugger-lib.pri) {
|
||||
include($$PWD/../qmljsdebugger/qmljsdebugger-lib.pri)
|
||||
}
|
||||
|
||||
DESTDIR = $$IDE_BIN_PATH
|
||||
|
||||
mac {
|
||||
QMAKE_INFO_PLIST=Info_mac.plist
|
||||
TARGET=QMLObserver
|
||||
|
||||
@@ -80,6 +80,8 @@ QWidget { //This is a special doubleSpinBox that does color coding for states
|
||||
decimals: 1;
|
||||
keyboardTracking: false;
|
||||
enabled: !backendValue.isBound && doubleSpinBox.enabled;
|
||||
minimum: -1000
|
||||
maximum: 1000
|
||||
|
||||
property bool readingFromBackend: false;
|
||||
property real valueFromBackend: doubleSpinBox.backendValue.value;
|
||||
@@ -17,8 +17,7 @@ QScrollArea {
|
||||
rightMargin: 0;
|
||||
spacing: 0;
|
||||
|
||||
Visibility {}
|
||||
Transformation {}
|
||||
Transformation {}
|
||||
|
||||
QScrollArea {
|
||||
}
|
||||
@@ -9,8 +9,8 @@ QWidget {
|
||||
|
||||
property variant caption;
|
||||
|
||||
property variant maximumValue: 99
|
||||
property variant minimumValue: 0
|
||||
property variant maximumValue: 1000
|
||||
property variant minimumValue: -1000
|
||||
property variant step: 1
|
||||
property bool slider: true
|
||||
property alias alignment: label.alignment
|
||||
@@ -13,10 +13,28 @@ PropertyFrame {
|
||||
leftMargin: 0;
|
||||
rightMargin: 0;
|
||||
spacing: 0;
|
||||
|
||||
Type {
|
||||
}
|
||||
|
||||
Geometry {
|
||||
}
|
||||
|
||||
Visibility {
|
||||
|
||||
}
|
||||
|
||||
HorizontalWhiteLine {
|
||||
maximumHeight: 4;
|
||||
styleSheet: "QLineEdit {border: 2px solid #707070; min-height: 0px; max-height: 0px;}";
|
||||
}
|
||||
|
||||
Switches {
|
||||
}
|
||||
|
||||
HorizontalWhiteLine {
|
||||
}
|
||||
|
||||
ScrollArea {
|
||||
styleSheetFile: ":/qmldesigner/scrollbar.css";
|
||||
widgetResizable: true;
|
||||
@@ -35,8 +53,6 @@ PropertyFrame {
|
||||
leftMargin: 0;
|
||||
rightMargin: 0;
|
||||
spacing: 0;
|
||||
Type {
|
||||
}
|
||||
|
||||
WidgetLoader {
|
||||
id: specificsOne;
|
||||
@@ -15,10 +15,7 @@ QScrollArea {
|
||||
bottomMargin: 0;
|
||||
leftMargin: 0;
|
||||
rightMargin: 0;
|
||||
spacing: 0
|
||||
|
||||
Geometry {
|
||||
}
|
||||
spacing: 0;
|
||||
|
||||
Layout {
|
||||
id: layoutBox;
|
||||
@@ -35,8 +35,8 @@ QFrame {
|
||||
id: layoutMode;
|
||||
checkable: true;
|
||||
checked: false;
|
||||
toolTip: qsTr("layout and geometry");
|
||||
text: qsTr("Geometry");
|
||||
toolTip: qsTr("layout");
|
||||
text: qsTr("Layout");
|
||||
onClicked: {
|
||||
extendedMode.checked = false;
|
||||
standardMode.checked = false;
|
||||