summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar@trolltech.com>2009-11-04 06:38:36 (GMT)
committerGunnar Sletta <gunnar@trolltech.com>2009-11-04 06:38:36 (GMT)
commit764f558846b8ee6f115004fc939b890991c40bfa (patch)
tree9bd47140cedbc9d8d28702618e6ad86fa6f2f666 /tools
parent9b0c0faf73dbdc382f1c02a42b10018bf9961d72 (diff)
parent1400ce5b85fbe7c67899f5f62bfd276eecb21ae0 (diff)
downloadQt-764f558846b8ee6f115004fc939b890991c40bfa.zip
Qt-764f558846b8ee6f115004fc939b890991c40bfa.tar.gz
Qt-764f558846b8ee6f115004fc939b890991c40bfa.tar.bz2
Merge branch '4.6' of c:\dev\qt-graphics-4.6
Conflicts: tools/qdoc3/test/qt-build-docs.qdocconf tools/qdoc3/test/qt-inc.qdocconf
Diffstat (limited to 'tools')
-rw-r--r--tools/assistant/tools/assistant/assistant.qchbin368640 -> 364544 bytes
-rw-r--r--tools/assistant/tools/assistant/centralwidget.cpp1
-rw-r--r--tools/assistant/translations/translations.pro1
-rw-r--r--tools/configure/configureapp.cpp64
-rw-r--r--tools/designer/src/lib/shared/qdesigner_tabwidget.cpp3
-rw-r--r--tools/linguist/linguist/mainwindow.cpp1
-rw-r--r--tools/linguist/lupdate/cpp.cpp22
-rw-r--r--tools/linguist/lupdate/main.cpp2
-rw-r--r--tools/linguist/phrasebooks/french.qph20
-rw-r--r--tools/linguist/shared/qm.cpp9
-rw-r--r--tools/linguist/shared/translatormessage.cpp8
-rw-r--r--tools/qdoc3/config.h4
-rw-r--r--tools/qdoc3/cppcodemarker.cpp58
-rw-r--r--tools/qdoc3/cppcodeparser.cpp42
-rw-r--r--tools/qdoc3/doc.cpp4
-rw-r--r--tools/qdoc3/helpprojectwriter.cpp12
-rw-r--r--tools/qdoc3/htmlgenerator.cpp19
-rw-r--r--tools/qdoc3/node.cpp16
-rw-r--r--tools/qdoc3/node.h29
-rw-r--r--tools/qdoc3/pagegenerator.cpp19
-rw-r--r--tools/qdoc3/test/classic.css7
-rw-r--r--tools/qdoc3/test/qt-build-docs.qdocconf8
-rw-r--r--tools/qdoc3/test/qt-cpp-ignore.qdocconf1
-rw-r--r--tools/qvfb/config.ui9
-rw-r--r--tools/qvfb/qvfb.cpp3
-rw-r--r--tools/tools.pro1
26 files changed, 273 insertions, 90 deletions
diff --git a/tools/assistant/tools/assistant/assistant.qch b/tools/assistant/tools/assistant/assistant.qch
index 3e66bd9..78fe9f3 100644
--- a/tools/assistant/tools/assistant/assistant.qch
+++ b/tools/assistant/tools/assistant/assistant.qch
Binary files differ
diff --git a/tools/assistant/tools/assistant/centralwidget.cpp b/tools/assistant/tools/assistant/centralwidget.cpp
index 04739d4..2722b2f 100644
--- a/tools/assistant/tools/assistant/centralwidget.cpp
+++ b/tools/assistant/tools/assistant/centralwidget.cpp
@@ -230,6 +230,7 @@ CentralWidget::CentralWidget(QHelpEngine *engine, MainWindow *parent)
#endif
tabWidget = new QTabWidget(this);
+ tabWidget->setDocumentMode(true);
connect(tabWidget, SIGNAL(currentChanged(int)), this,
SLOT(currentPageChanged(int)));
diff --git a/tools/assistant/translations/translations.pro b/tools/assistant/translations/translations.pro
index 6ff1fc9..95501ab 100644
--- a/tools/assistant/translations/translations.pro
+++ b/tools/assistant/translations/translations.pro
@@ -44,6 +44,7 @@ TR_DIR = $$PWD/../../../translations
TRANSLATIONS = \
$$TR_DIR/assistant_da.ts \
$$TR_DIR/assistant_de.ts \
+ $$TR_DIR/assistant_fr.ts \
$$TR_DIR/assistant_ja.ts \
$$TR_DIR/assistant_pl.ts \
$$TR_DIR/assistant_ru.ts \
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index f57f3a8..e2b7d58 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -249,6 +249,7 @@ Configure::Configure( int& argc, char** argv )
dictionary[ "MULTIMEDIA" ] = "yes";
dictionary[ "DIRECTSHOW" ] = "no";
dictionary[ "WEBKIT" ] = "auto";
+ dictionary[ "DECLARATIVE" ] = "no";
dictionary[ "PLUGIN_MANIFESTS" ] = "yes";
QString version;
@@ -905,6 +906,10 @@ void Configure::parseCmdLine()
dictionary[ "WEBKIT" ] = "no";
} else if( configCmdLine.at(i) == "-webkit" ) {
dictionary[ "WEBKIT" ] = "yes";
+ } else if( configCmdLine.at(i) == "-no-declarative" ) {
+ dictionary[ "DECLARATIVE" ] = "no";
+ } else if( configCmdLine.at(i) == "-declarative" ) {
+ dictionary[ "DECLARATIVE" ] = "yes";
} else if( configCmdLine.at(i) == "-no-plugin-manifests" ) {
dictionary[ "PLUGIN_MANIFESTS" ] = "no";
} else if( configCmdLine.at(i) == "-plugin-manifests" ) {
@@ -1412,7 +1417,6 @@ void Configure::applySpecSpecifics()
dictionary[ "WEBKIT" ] = "no";
dictionary[ "PHONON" ] = "yes";
dictionary[ "DIRECTSHOW" ] = "no";
- dictionary[ "LTCG" ] = "yes";
// We only apply MMX/IWMMXT for mkspecs we know they work
if (dictionary[ "XQMAKESPEC" ].startsWith("wincewm")) {
dictionary[ "MMX" ] = "yes";
@@ -1448,10 +1452,10 @@ void Configure::applySpecSpecifics()
dictionary[ "IWMMXT" ] = "no";
dictionary[ "CE_CRT" ] = "no";
dictionary[ "DIRECT3D" ] = "no";
- dictionary[ "WEBKIT" ] = "no";
+ dictionary[ "WEBKIT" ] = "yes";
dictionary[ "ASSISTANT_WEBKIT" ] = "no";
dictionary[ "PHONON" ] = "yes";
- dictionary[ "XMLPATTERNS" ] = "no";
+ dictionary[ "XMLPATTERNS" ] = "yes";
dictionary[ "QT_GLIB" ] = "no";
dictionary[ "S60" ] = "yes";
// iconv makes makes apps start and run ridiculously slowly in symbian emulator (HW not tested)
@@ -1746,6 +1750,8 @@ bool Configure::displayHelp()
desc("SCRIPT", "yes", "-script", "Build the QtScript module.");
desc("SCRIPTTOOLS", "no", "-no-scripttools", "Do not build the QtScriptTools module.");
desc("SCRIPTTOOLS", "yes", "-scripttools", "Build the QtScriptTools module.");
+ desc("DECLARATIVE", "no", "-no-declarative", "Do not build the declarative module");
+ desc("DECLARATIVE", "yes", "-declarative", "Build the declarative module");
desc( "-arch <arch>", "Specify an architecture.\n"
"Available values for <arch>:");
@@ -2438,14 +2444,17 @@ void Configure::generateOutputVars()
if ( dictionary["OPENGL_ES_CM"] == "yes" ) {
qtConfig += "opengles1";
+ qtConfig += "egl";
}
if ( dictionary["OPENGL_ES_2"] == "yes" ) {
qtConfig += "opengles2";
+ qtConfig += "egl";
}
if ( dictionary["OPENGL_ES_CL"] == "yes" ) {
qtConfig += "opengles1cl";
+ qtConfig += "egl";
}
if ( dictionary["OPENVG"] == "yes" ) {
@@ -2505,6 +2514,9 @@ void Configure::generateOutputVars()
if (dictionary["WEBKIT"] == "yes")
qtConfig += "webkit";
+ if (dictionary["DECLARATIVE"] == "yes")
+ qtConfig += "declarative";
+
// We currently have no switch for QtSvg, so add it unconditionally.
qtConfig += "svg";
@@ -2780,17 +2792,6 @@ QString Configure::addDefine(QString def)
}
#if !defined(EVAL)
-// ### This should be removed once Qt for S60 is out.
-static void applyTemporarySymbianFlags(QStringList &qconfigList)
-{
- qconfigList += "QT_NO_CONCURRENT";
- qconfigList += "QT_NO_QFUTURE";
- // This is removed because it uses UNIX signals which are not implemented yet
- qconfigList += "QT_NO_CRASHHANDLER";
- qconfigList += "QT_NO_PRINTER";
- qconfigList += "QT_NO_SYSTEMTRAYICON";
-}
-
void Configure::generateConfigfiles()
{
QDir(buildPath).mkpath("src/corelib/global");
@@ -2884,6 +2885,7 @@ void Configure::generateConfigfiles()
if(dictionary["DBUS"] == "no") qconfigList += "QT_NO_DBUS";
if(dictionary["IPV6"] == "no") qconfigList += "QT_NO_IPV6";
if(dictionary["WEBKIT"] == "no") qconfigList += "QT_NO_WEBKIT";
+ if(dictionary["DECLARATIVE"] == "no") qconfigList += "QT_NO_DECLARATIVE";
if(dictionary["PHONON"] == "no") qconfigList += "QT_NO_PHONON";
if(dictionary["MULTIMEDIA"] == "no") qconfigList += "QT_NO_MULTIMEDIA";
if(dictionary["XMLPATTERNS"] == "no") qconfigList += "QT_NO_XMLPATTERNS";
@@ -2913,9 +2915,14 @@ void Configure::generateConfigfiles()
if (dictionary["GRAPHICS_SYSTEM"] == "openvg") qconfigList += "QT_GRAPHICSSYSTEM_OPENVG";
if (dictionary["GRAPHICS_SYSTEM"] == "opengl") qconfigList += "QT_GRAPHICSSYSTEM_OPENGL";
if (dictionary["GRAPHICS_SYSTEM"] == "raster") qconfigList += "QT_GRAPHICSSYSTEM_RASTER";
- // ### This block should be removed once Qt for S60 is out.
+
if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
- applyTemporarySymbianFlags(qconfigList);
+ // These features are not ported to Symbian (yet)
+ qconfigList += "QT_NO_CONCURRENT";
+ qconfigList += "QT_NO_QFUTURE";
+ qconfigList += "QT_NO_CRASHHANDLER";
+ qconfigList += "QT_NO_PRINTER";
+ qconfigList += "QT_NO_SYSTEMTRAYICON";
}
qconfigList.sort();
@@ -3033,7 +3040,11 @@ void Configure::generateConfigfiles()
tmpStream.setDevice(&tmpFile2);
tmpStream << "/* Licensed */" << endl
<< "static const char qt_configure_licensee_str [512 + 12] = \"qt_lcnsuser=" << licenseInfo["LICENSEE"] << "\";" << endl
- << "static const char qt_configure_licensed_products_str [512 + 12] = \"qt_lcnsprod=" << dictionary["EDITION"] << "\";" << endl;
+ << "static const char qt_configure_licensed_products_str [512 + 12] = \"qt_lcnsprod=" << dictionary["EDITION"] << "\";" << endl
+ << endl
+ << "/* Build date */" << endl
+ << "static const char qt_configure_installation [11 + 12] = \"qt_instdate=" << QDate::currentDate().toString(Qt::ISODate) << "\";" << endl
+ << endl;
if(!dictionary[ "QT_HOST_PREFIX" ].isNull())
tmpStream << "#if !defined(QT_BOOTSTRAPPED) && !defined(QT_BUILD_QMAKE)" << endl;
tmpStream << "static const char qt_configure_prefix_path_str [512 + 12] = \"qt_prfxpath=" << QString(dictionary["QT_INSTALL_PREFIX"]).replace( "\\", "\\\\" ) << "\";" << endl
@@ -3087,6 +3098,24 @@ void Configure::generateConfigfiles()
tmpFile2.copy(outName);
tmpFile2.close();
}
+
+ QTemporaryFile tmpFile3;
+ if (tmpFile3.open()) {
+ tmpStream.setDevice(&tmpFile3);
+ tmpStream << "/* Evaluation license key */" << endl
+ << "static const char qt_eval_key_data [512 + 12] = \"" << licenseInfo["LICENSEKEYEXT"] << "\";" << endl;
+
+ tmpStream.flush();
+ tmpFile3.flush();
+
+ outName = buildPath + "/src/corelib/global/qconfig_eval.cpp";
+ ::SetFileAttributes((wchar_t*)outName.utf16(), FILE_ATTRIBUTE_NORMAL );
+ QFile::remove( outName );
+
+ if (dictionary["EDITION"] == "Evaluation" || qmakeDefines.contains("QT_EVAL"))
+ tmpFile3.copy(outName);
+ tmpFile3.close();
+ }
}
#endif
@@ -3155,6 +3184,7 @@ void Configure::displayConfig()
cout << "Phonon support.............." << dictionary[ "PHONON" ] << endl;
cout << "QtMultimedia support........" << dictionary[ "MULTIMEDIA" ] << endl;
cout << "WebKit support.............." << dictionary[ "WEBKIT" ] << endl;
+ cout << "Declarative support........." << dictionary[ "DECLARATIVE" ] << endl;
cout << "QtScript support............" << dictionary[ "SCRIPT" ] << endl;
cout << "QtScriptTools support......." << dictionary[ "SCRIPTTOOLS" ] << endl;
cout << "Graphics System............." << dictionary[ "GRAPHICS_SYSTEM" ] << endl;
diff --git a/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp b/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp
index 2789bd3..f4f3d24 100644
--- a/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_tabwidget.cpp
@@ -399,6 +399,7 @@ static const char *currentTabNameKey = "currentTabName";
static const char *currentTabIconKey = "currentTabIcon";
static const char *currentTabToolTipKey = "currentTabToolTip";
static const char *currentTabWhatsThisKey = "currentTabWhatsThis";
+static const char *tabMovableKey = "movable";
QTabWidgetPropertySheet::QTabWidgetPropertySheet(QTabWidget *object, QObject *parent) :
QDesignerPropertySheet(object, parent),
@@ -411,6 +412,8 @@ QTabWidgetPropertySheet::QTabWidgetPropertySheet(QTabWidget *object, QObject *pa
formWindowBase()->addReloadableProperty(this, indexOf(QLatin1String(currentTabIconKey)));
createFakeProperty(QLatin1String(currentTabToolTipKey), qVariantFromValue(qdesigner_internal::PropertySheetStringValue()));
createFakeProperty(QLatin1String(currentTabWhatsThisKey), qVariantFromValue(qdesigner_internal::PropertySheetStringValue()));
+ // Prevent the tab widget's drag and drop handling from interfering with Designer's
+ createFakeProperty(QLatin1String(tabMovableKey), QVariant(false));
}
QTabWidgetPropertySheet::TabWidgetProperty QTabWidgetPropertySheet::tabWidgetPropertyFromName(const QString &name)
diff --git a/tools/linguist/linguist/mainwindow.cpp b/tools/linguist/linguist/mainwindow.cpp
index 9bc6641..7f09a1c 100644
--- a/tools/linguist/linguist/mainwindow.cpp
+++ b/tools/linguist/linguist/mainwindow.cpp
@@ -269,6 +269,7 @@ MainWindow::MainWindow()
m_editActiveModel(-1),
m_statistics(0)
{
+ setUnifiedTitleAndToolBarOnMac(true);
m_ui.setupUi(this);
#ifndef Q_WS_MAC
diff --git a/tools/linguist/lupdate/cpp.cpp b/tools/linguist/lupdate/cpp.cpp
index 7a616e3..4d89156 100644
--- a/tools/linguist/lupdate/cpp.cpp
+++ b/tools/linguist/lupdate/cpp.cpp
@@ -1896,28 +1896,29 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
prospectiveContext.clear();
}
break;
- case Tok_Comment:
+ case Tok_Comment: {
if (!tor)
goto case_default;
- if (yyWord.startsWith(QLatin1Char(':'))) {
- yyWord.remove(0, 1);
+ const QChar *ptr = yyWord.unicode();
+ if (*ptr == QLatin1Char(':') && ptr[1].isSpace()) {
+ yyWord.remove(0, 2);
extracomment += yyWord;
extracomment.detach();
- } else if (yyWord.startsWith(QLatin1Char('='))) {
- yyWord.remove(0, 1);
+ } else if (*ptr == QLatin1Char('=') && ptr[1].isSpace()) {
+ yyWord.remove(0, 2);
msgid = yyWord.simplified();
msgid.detach();
- } else if (yyWord.startsWith(QLatin1Char('~'))) {
- yyWord.remove(0, 1);
+ } else if (*ptr == QLatin1Char('~') && ptr[1].isSpace()) {
+ yyWord.remove(0, 2);
text = yyWord.trimmed();
int k = text.indexOf(QLatin1Char(' '));
if (k > -1)
extra.insert(text.left(k), text.mid(k + 1).trimmed());
text.clear();
- } else if (yyWord.startsWith(QLatin1Char('%'))) {
- sourcetext.reserve(sourcetext.length() + yyWord.length());
+ } else if (*ptr == QLatin1Char('%') && ptr[1].isSpace()) {
+ sourcetext.reserve(sourcetext.length() + yyWord.length() - 2);
ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length();
- int p = 1, c;
+ int p = 2, c;
forever {
if (p >= yyWord.length())
break;
@@ -1977,6 +1978,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet<QString> &inclusions)
}
yyTok = getToken();
break;
+ }
case Tok_Arrow:
yyTok = getToken();
if (yyTok == Tok_tr || yyTok == Tok_trUtf8)
diff --git a/tools/linguist/lupdate/main.cpp b/tools/linguist/lupdate/main.cpp
index 6b554e0..bdaec4f 100644
--- a/tools/linguist/lupdate/main.cpp
+++ b/tools/linguist/lupdate/main.cpp
@@ -160,6 +160,8 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
tor.setCodecName(codecForTr);
if (!targetLanguage.isEmpty())
tor.setLanguageCode(targetLanguage);
+ else
+ tor.setLanguageCode(Translator::guessLanguageCodeFromFileName(fileName));
if (!sourceLanguage.isEmpty())
tor.setSourceLanguageCode(sourceLanguage);
}
diff --git a/tools/linguist/phrasebooks/french.qph b/tools/linguist/phrasebooks/french.qph
index d38da5a..9440345 100644
--- a/tools/linguist/phrasebooks/french.qph
+++ b/tools/linguist/phrasebooks/french.qph
@@ -1326,4 +1326,24 @@
<source>Close All Except %1</source>
<target>Fermer tout sauf %1</target>
</phrase>
+<phrase>
+ <source>Remove</source>
+ <target>Suppression</target>
+</phrase>
+<phrase>
+ <source>About...</source>
+ <target>À propos…</target>
+</phrase>
+<phrase>
+ <source>Minimize</source>
+ <target>Minimiser</target>
+</phrase>
+<phrase>
+ <source>Remove</source>
+ <target>Supprimer</target>
+</phrase>
+<phrase>
+ <source>Select All</source>
+ <target>Sélectionner tout</target>
+</phrase>
</QPH>
diff --git a/tools/linguist/shared/qm.cpp b/tools/linguist/shared/qm.cpp
index fefe91c..317a07e 100644
--- a/tools/linguist/shared/qm.cpp
+++ b/tools/linguist/shared/qm.cpp
@@ -440,9 +440,10 @@ void Releaser::insert(const TranslatorMessage &message, bool forceComment)
void Releaser::insertIdBased(const TranslatorMessage &message)
{
QStringList tlns = message.translations();
- for (int i = 0; i < tlns.size(); ++i)
- if (tlns.at(i).isEmpty())
- tlns[i] = message.sourceText();
+ if (message.type() == TranslatorMessage::Unfinished)
+ for (int i = 0; i < tlns.size(); ++i)
+ if (tlns.at(i).isEmpty())
+ tlns[i] = message.sourceText();
ByteTranslatorMessage bmsg("", originalBytes(message.id(), false), "", tlns);
m_messages.insert(bmsg, 0);
}
@@ -713,7 +714,7 @@ static bool saveQM(const Translator &translator, QIODevice &dev, ConversionData
continue;
}
if (typ == TranslatorMessage::Unfinished) {
- if (msg.translation().isEmpty()) {
+ if (!cd.m_idBased && msg.translation().isEmpty()) {
++untranslated;
continue;
} else {
diff --git a/tools/linguist/shared/translatormessage.cpp b/tools/linguist/shared/translatormessage.cpp
index 417f6b1..db6f333 100644
--- a/tools/linguist/shared/translatormessage.cpp
+++ b/tools/linguist/shared/translatormessage.cpp
@@ -151,6 +151,7 @@ bool TranslatorMessage::operator==(const TranslatorMessage& m) const
return (m_context == m.m_context)
&& m_sourcetext == m.m_sourcetext
&& m_extra[msgIdPlural] == m.m_extra[msgIdPlural]
+ && m_id == m.m_id
&& (m_sourcetext.isEmpty() || m_comment == m.m_comment);
}
@@ -161,7 +162,9 @@ bool TranslatorMessage::operator<(const TranslatorMessage& m) const
return m_context < m.m_context;
if (m_sourcetext != m.m_sourcetext)
return m_sourcetext < m.m_sourcetext;
- return m_comment < m.m_comment;
+ if (m_comment != m.m_comment)
+ return m_comment < m.m_comment;
+ return m_id < m.m_id;
}
int qHash(const TranslatorMessage &msg)
@@ -170,7 +173,8 @@ int qHash(const TranslatorMessage &msg)
qHash(msg.context()) ^
qHash(msg.sourceText()) ^
qHash(msg.extra(QLatin1String("po-msgid_plural"))) ^
- qHash(msg.comment());
+ qHash(msg.comment()) ^
+ qHash(msg.id());
}
bool TranslatorMessage::hasExtra(const QString &key) const
diff --git a/tools/qdoc3/config.h b/tools/qdoc3/config.h
index 07cdb59..725129a 100644
--- a/tools/qdoc3/config.h
+++ b/tools/qdoc3/config.h
@@ -162,6 +162,10 @@ class Config
#define CONFIG_FILEEXTENSIONS "fileextensions"
+#ifdef QDOC_QML
+#define CONFIG_QMLONLY "qmlonly"
+#endif
+
QT_END_NAMESPACE
#endif
diff --git a/tools/qdoc3/cppcodemarker.cpp b/tools/qdoc3/cppcodemarker.cpp
index e2322b2..53a2a99 100644
--- a/tools/qdoc3/cppcodemarker.cpp
+++ b/tools/qdoc3/cppcodemarker.cpp
@@ -353,6 +353,10 @@ QString CppCodeMarker::markedUpQmlItem(const Node* node, bool summary)
QString name = taggedQmlNode(node);
if (summary) {
name = linkTag(node,name);
+ } else if (node->type() == Node::QmlProperty) {
+ const QmlPropertyNode* pn = static_cast<const QmlPropertyNode*>(node);
+ if (pn->isAttached())
+ name.prepend(pn->element() + QLatin1Char('.'));
}
name = "<@name>" + name + "</@name>";
QString synopsis = name;
@@ -1111,21 +1115,29 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode,
if (qmlClassNode) {
if (style == Summary) {
FastSection qmlproperties(qmlClassNode,
- "QML Properties",
+ "Properties",
"property",
"properties");
FastSection qmlattachedproperties(qmlClassNode,
- "QML Attached Properties",
+ "Attached Properties",
"property",
"properties");
FastSection qmlsignals(qmlClassNode,
- "QML Signals",
+ "Signals",
"signal",
"signals");
+ FastSection qmlattachedsignals(qmlClassNode,
+ "QML Attached Signals",
+ "signal",
+ "signals");
FastSection qmlmethods(qmlClassNode,
- "QML Methods",
+ "Methods",
"method",
"methods");
+ FastSection qmlattachedmethods(qmlClassNode,
+ "QML Attached Methods",
+ "method",
+ "methods");
NodeList::ConstIterator c = qmlClassNode->childNodes().begin();
while (c != qmlClassNode->childNodes().end()) {
@@ -1144,23 +1156,35 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode,
}
}
else if ((*c)->type() == Node::QmlSignal) {
- insert(qmlsignals,*c,style,Okay);
+ const QmlSignalNode* sn = static_cast<const QmlSignalNode*>(*c);
+ if (sn->isAttached())
+ insert(qmlattachedsignals,*c,style,Okay);
+ else
+ insert(qmlsignals,*c,style,Okay);
}
else if ((*c)->type() == Node::QmlMethod) {
- insert(qmlmethods,*c,style,Okay);
+ const QmlMethodNode* mn = static_cast<const QmlMethodNode*>(*c);
+ if (mn->isAttached())
+ insert(qmlattachedmethods,*c,style,Okay);
+ else
+ insert(qmlmethods,*c,style,Okay);
}
++c;
}
append(sections,qmlproperties);
append(sections,qmlattachedproperties);
append(sections,qmlsignals);
+ append(sections,qmlattachedsignals);
append(sections,qmlmethods);
+ append(sections,qmlattachedmethods);
}
else if (style == Detailed) {
- FastSection qmlproperties(qmlClassNode,"QML Property Documentation");
- FastSection qmlattachedproperties(qmlClassNode,"QML Attached Property Documentation");
- FastSection qmlsignals(qmlClassNode,"QML Signal Documentation");
- FastSection qmlmethods(qmlClassNode,"QML Method Documentation");
+ FastSection qmlproperties(qmlClassNode, "Property Documentation");
+ FastSection qmlattachedproperties(qmlClassNode,"Attached Property Documentation");
+ FastSection qmlsignals(qmlClassNode,"Signal Documentation");
+ FastSection qmlattachedsignals(qmlClassNode,"Attached Signal Documentation");
+ FastSection qmlmethods(qmlClassNode,"Method Documentation");
+ FastSection qmlattachedmethods(qmlClassNode,"Attached Method Documentation");
NodeList::ConstIterator c = qmlClassNode->childNodes().begin();
while (c != qmlClassNode->childNodes().end()) {
if ((*c)->subType() == Node::QmlPropertyGroup) {
@@ -1171,17 +1195,27 @@ QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode,
insert(qmlproperties,*c,style,Okay);
}
else if ((*c)->type() == Node::QmlSignal) {
- insert(qmlsignals,*c,style,Okay);
+ const QmlSignalNode* sn = static_cast<const QmlSignalNode*>(*c);
+ if (sn->isAttached())
+ insert(qmlattachedsignals,*c,style,Okay);
+ else
+ insert(qmlsignals,*c,style,Okay);
}
else if ((*c)->type() == Node::QmlMethod) {
- insert(qmlmethods,*c,style,Okay);
+ const QmlMethodNode* mn = static_cast<const QmlMethodNode*>(*c);
+ if (mn->isAttached())
+ insert(qmlattachedmethods,*c,style,Okay);
+ else
+ insert(qmlmethods,*c,style,Okay);
}
++c;
}
append(sections,qmlproperties);
append(sections,qmlattachedproperties);
append(sections,qmlsignals);
+ append(sections,qmlattachedsignals);
append(sections,qmlmethods);
+ append(sections,qmlattachedmethods);
}
}
diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp
index ad43b2b..cabbe38 100644
--- a/tools/qdoc3/cppcodeparser.cpp
+++ b/tools/qdoc3/cppcodeparser.cpp
@@ -91,7 +91,9 @@ QT_BEGIN_NAMESPACE
#define COMMAND_QMLATTACHEDPROPERTY Doc::alias("qmlattachedproperty")
#define COMMAND_QMLINHERITS Doc::alias("inherits")
#define COMMAND_QMLSIGNAL Doc::alias("qmlsignal")
+#define COMMAND_QMLATTACHEDSIGNAL Doc::alias("qmlattachedsignal")
#define COMMAND_QMLMETHOD Doc::alias("qmlmethod")
+#define COMMAND_QMLATTACHEDMETHOD Doc::alias("qmlattachedmethod")
#define COMMAND_QMLDEFAULT Doc::alias("default")
#endif
@@ -485,7 +487,9 @@ QSet<QString> CppCodeParser::topicCommands()
<< COMMAND_QMLPROPERTY
<< COMMAND_QMLATTACHEDPROPERTY
<< COMMAND_QMLSIGNAL
- << COMMAND_QMLMETHOD;
+ << COMMAND_QMLATTACHEDSIGNAL
+ << COMMAND_QMLMETHOD
+ << COMMAND_QMLATTACHEDMETHOD;
#else
<< COMMAND_VARIABLE;
#endif
@@ -678,7 +682,9 @@ Node *CppCodeParser::processTopicCommand(const Doc& doc,
return new QmlClassNode(tre->root(), names[0], classNode);
}
else if ((command == COMMAND_QMLSIGNAL) ||
- (command == COMMAND_QMLMETHOD)) {
+ (command == COMMAND_QMLMETHOD) ||
+ (command == COMMAND_QMLATTACHEDSIGNAL) ||
+ (command == COMMAND_QMLATTACHEDMETHOD)) {
QString element;
QString name;
QmlClassNode* qmlClass = 0;
@@ -687,9 +693,15 @@ Node *CppCodeParser::processTopicCommand(const Doc& doc,
if (n && n->subType() == Node::QmlClass) {
qmlClass = static_cast<QmlClassNode*>(n);
if (command == COMMAND_QMLSIGNAL)
- return new QmlSignalNode(qmlClass,name);
+ return new QmlSignalNode(qmlClass,name,false);
+ else if (command == COMMAND_QMLATTACHEDSIGNAL)
+ return new QmlSignalNode(qmlClass,name,true);
+ else if (command == COMMAND_QMLMETHOD)
+ return new QmlMethodNode(qmlClass,name,false);
+ else if (command == COMMAND_QMLATTACHEDMETHOD)
+ return new QmlMethodNode(qmlClass,name,true);
else
- return new QmlMethodNode(qmlClass,name);
+ return 0; // never get here.
}
}
}
@@ -787,14 +799,26 @@ Node *CppCodeParser::processTopicCommandGroup(const Doc& doc,
}
}
if (qmlPropGroup) {
- new QmlPropertyNode(qmlPropGroup,property,type,attached);
+ const ClassNode *correspondingClass = static_cast<const QmlClassNode*>(qmlPropGroup->parent())->classNode();
+ PropertyNode *correspondingProperty = 0;
+ if (correspondingClass)
+ correspondingProperty = static_cast<PropertyNode*>((Node*)correspondingClass->findNode(property, Node::Property));
+ QmlPropertyNode *qmlPropNode = new QmlPropertyNode(qmlPropGroup,property,type,attached);
+ if (correspondingProperty) {
+ bool writableList = type.startsWith("list") && correspondingProperty->dataType().endsWith('*');
+ qmlPropNode->setWritable(writableList || correspondingProperty->isWritable());
+ }
++arg;
while (arg != args.end()) {
if (splitQmlPropertyArg(doc,(*arg),type,element,property)) {
- new QmlPropertyNode(qmlPropGroup,
+ QmlPropertyNode * qmlPropNode = new QmlPropertyNode(qmlPropGroup,
property,
type,
attached);
+ if (correspondingProperty) {
+ bool writableList = type.startsWith("list") && correspondingProperty->dataType().endsWith('*');
+ qmlPropNode->setWritable(writableList || correspondingProperty->isWritable());
+ }
}
++arg;
}
@@ -1739,15 +1763,15 @@ bool CppCodeParser::matchProperty(InnerNode *parent)
if (key == "READ")
tre->addPropertyFunction(property, value, PropertyNode::Getter);
- else if (key == "WRITE")
+ else if (key == "WRITE") {
tre->addPropertyFunction(property, value, PropertyNode::Setter);
- else if (key == "STORED")
+ property->setWritable(true);
+ } else if (key == "STORED")
property->setStored(value.toLower() == "true");
else if (key == "DESIGNABLE")
property->setDesignable(value.toLower() == "true");
else if (key == "RESET")
tre->addPropertyFunction(property, value, PropertyNode::Resetter);
-
else if (key == "NOTIFY") {
tre->addPropertyFunction(property, value, PropertyNode::Notifier);
}
diff --git a/tools/qdoc3/doc.cpp b/tools/qdoc3/doc.cpp
index 748390f..f4931b8 100644
--- a/tools/qdoc3/doc.cpp
+++ b/tools/qdoc3/doc.cpp
@@ -2841,6 +2841,10 @@ void Doc::initialize(const Config& config)
DocParser::sourceDirs = config.getStringList(CONFIG_SOURCEDIRS);
DocParser::quoting = config.getBool(CONFIG_QUOTINGINFORMATION);
+#ifdef QDOC_QML
+ QmlClassNode::qmlOnly = config.getBool(CONFIG_QMLONLY);
+#endif
+
QStringMap reverseAliasMap;
QSet<QString> commands = config.subVars(CONFIG_ALIAS);
diff --git a/tools/qdoc3/helpprojectwriter.cpp b/tools/qdoc3/helpprojectwriter.cpp
index 4973387..52f54c0 100644
--- a/tools/qdoc3/helpprojectwriter.cpp
+++ b/tools/qdoc3/helpprojectwriter.cpp
@@ -187,8 +187,16 @@ QStringList HelpProjectWriter::keywordDetails(const Node *node) const
details << node->parent()->name()+"::"+node->name();
} else if (node->type() == Node::Fake) {
const FakeNode *fake = static_cast<const FakeNode *>(node);
- details << fake->fullTitle();
- details << fake->fullTitle();
+#ifdef QDOC_QML
+ if (fake->subType() == Node::QmlClass) {
+ details << (QmlClassNode::qmlOnly ? fake->name() : fake->fullTitle());
+ details << "QML." + fake->name();
+ } else
+#endif
+ {
+ details << fake->fullTitle();
+ details << fake->fullTitle();
+ }
} else {
details << node->name();
details << node->name();
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 18c7916..afd1e74 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -3467,10 +3467,13 @@ QString HtmlGenerator::refForNode(const Node *node)
ref += "-" + QString::number(func->overloadNumber());
}
break;
- case Node::Property:
-#ifdef QDOC_QML
+#ifdef QDOC_QML
+ case Node::Fake:
+ if (node->subType() != Node::QmlPropertyGroup)
+ break;
case Node::QmlProperty:
#endif
+ case Node::Property:
ref = node->name() + "-prop";
break;
#ifdef QDOC_QML
@@ -3512,9 +3515,9 @@ QString HtmlGenerator::linkForNode(const Node *node, const Node *relative)
// ### reintroduce this test, without breaking .dcf files
if (fn != outFileName())
#endif
- link += fn;
+ link += fn;
- if (!node->isInnerNode()) {
+ if (!node->isInnerNode() || node->subType() == Node::QmlPropertyGroup) {
ref = refForNode(node);
if (relative && fn == fileName(relative) && ref == refForNode(relative))
return QString();
@@ -4189,13 +4192,15 @@ void HtmlGenerator::generateDetailedQmlMember(const Node *node,
const QmlPropGroupNode* qpgn = static_cast<const QmlPropGroupNode*>(node);
NodeList::ConstIterator p = qpgn->childNodes().begin();
out() << "<div class=\"qmlproto\">";
- out() << "<table class=\"qmlname\">";
+ out() << "<table width=\"100%\" class=\"qmlname\">";
while (p != qpgn->childNodes().end()) {
if ((*p)->type() == Node::QmlProperty) {
qpn = static_cast<const QmlPropertyNode*>(*p);
out() << "<tr><td>";
out() << "<a name=\"" + refForNode(qpn) + "\"></a>";
+ if (!qpn->isWritable())
+ out() << "<span class=\"qmlreadonly\">read-only</span>";
generateQmlItem(qpn, relative, marker, false);
out() << "</td></tr>";
if (qpgn->isDefault()) {
@@ -4276,7 +4281,7 @@ void HtmlGenerator::generateQmlInherits(const QmlClassNode* cn,
}
/*!
- Output the "[Xxx instantiates the C++ class QFxXxx]"
+ Output the "[Xxx instantiates the C++ class QmlGraphicsXxx]"
line for the QML element, if there should be one.
If there is no class node, or if the class node status
@@ -4306,7 +4311,7 @@ void HtmlGenerator::generateQmlInstantiates(const QmlClassNode* qcn,
}
/*!
- Output the "[QFxXxx is instantiated by QML element Xxx]"
+ Output the "[QmlGraphicsXxx is instantiated by QML element Xxx]"
line for the class, if there should be one.
If there is no QML element, or if the class node status
diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp
index 49f2cc9..ecb4a44 100644
--- a/tools/qdoc3/node.cpp
+++ b/tools/qdoc3/node.cpp
@@ -1127,6 +1127,8 @@ bool TargetNode::isInnerNode() const
}
#ifdef QDOC_QML
+bool QmlClassNode::qmlOnly = false;
+
/*!
Constructor for the Qml class node.
*/
@@ -1135,7 +1137,7 @@ QmlClassNode::QmlClassNode(InnerNode *parent,
const ClassNode* cn)
: FakeNode(parent, name, QmlClass), cnode(cn)
{
- setTitle("QML " + name + " Element Reference");
+ setTitle((qmlOnly ? "" : "QML ") + name + " Element Reference");
}
/*!
@@ -1210,8 +1212,10 @@ bool QmlPropertyNode::fromTrool(Trool troolean, bool defaultValue)
/*!
Constructor for the QML signal node.
*/
-QmlSignalNode::QmlSignalNode(QmlClassNode *parent, const QString& name)
- : LeafNode(QmlSignal, parent, name)
+QmlSignalNode::QmlSignalNode(QmlClassNode *parent,
+ const QString& name,
+ bool attached)
+ : LeafNode(QmlSignal, parent, name), att(attached)
{
// nothing.
}
@@ -1219,8 +1223,10 @@ QmlSignalNode::QmlSignalNode(QmlClassNode *parent, const QString& name)
/*!
Constructor for the QML method node.
*/
-QmlMethodNode::QmlMethodNode(QmlClassNode *parent, const QString& name)
- : LeafNode(QmlMethod, parent, name)
+QmlMethodNode::QmlMethodNode(QmlClassNode *parent,
+ const QString& name,
+ bool attached)
+ : LeafNode(QmlMethod, parent, name), att(attached)
{
// nothing.
}
diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h
index fed4ea1..5712879 100644
--- a/tools/qdoc3/node.h
+++ b/tools/qdoc3/node.h
@@ -362,6 +362,8 @@ class QmlClassNode : public FakeNode
const ClassNode* classNode() const { return cnode; }
virtual QString fileBase() const;
+ static bool qmlOnly;
+
private:
const ClassNode* cnode;
};
@@ -374,7 +376,7 @@ class QmlPropGroupNode : public FakeNode
bool attached);
virtual ~QmlPropGroupNode() { }
- const QString& element() const { return name(); }
+ const QString& element() const { return parent()->name(); }
void setDefault() { isdefault = true; }
bool isDefault() const { return isdefault; }
bool isAttached() const { return att; }
@@ -396,14 +398,16 @@ class QmlPropertyNode : public LeafNode
void setDataType(const QString& dataType) { dt = dataType; }
void setStored(bool stored) { sto = toTrool(stored); }
void setDesignable(bool designable) { des = toTrool(designable); }
+ void setWritable(bool writable) { wri = toTrool(writable); }
const QString &dataType() const { return dt; }
QString qualifiedDataType() const { return dt; }
bool isStored() const { return fromTrool(sto,true); }
bool isDesignable() const { return fromTrool(des,false); }
+ bool isWritable() const { return fromTrool(wri,true); }
bool isAttached() const { return att; }
- const QString& element() const { return parent()->name(); }
+ const QString& element() const { return static_cast<QmlPropGroupNode*>(parent())->element(); }
private:
enum Trool { Trool_True, Trool_False, Trool_Default };
@@ -414,25 +418,38 @@ class QmlPropertyNode : public LeafNode
QString dt;
Trool sto;
Trool des;
+ Trool wri;
bool att;
};
class QmlSignalNode : public LeafNode
{
public:
- QmlSignalNode(QmlClassNode* parent, const QString& name);
+ QmlSignalNode(QmlClassNode* parent,
+ const QString& name,
+ bool attached);
virtual ~QmlSignalNode() { }
const QString& element() const { return parent()->name(); }
+ bool isAttached() const { return att; }
+
+ private:
+ bool att;
};
class QmlMethodNode : public LeafNode
{
public:
- QmlMethodNode(QmlClassNode* parent, const QString& name);
+ QmlMethodNode(QmlClassNode* parent,
+ const QString& name,
+ bool attached);
virtual ~QmlMethodNode() { }
const QString& element() const { return parent()->name(); }
+ bool isAttached() const { return att; }
+
+ private:
+ bool att;
};
#endif
@@ -623,6 +640,7 @@ class PropertyNode : public LeafNode
void addSignal(FunctionNode *function, FunctionRole role);
void setStored(bool stored) { sto = toTrool(stored); }
void setDesignable(bool designable) { des = toTrool(designable); }
+ void setWritable(bool writable) { wri = toTrool(writable); }
void setOverriddenFrom(const PropertyNode *baseProperty);
const QString &dataType() const { return dt; }
@@ -635,6 +653,7 @@ class PropertyNode : public LeafNode
NodeList notifiers() const { return functions(Notifier); }
bool isStored() const { return fromTrool(sto, storedDefault()); }
bool isDesignable() const { return fromTrool(des, designableDefault()); }
+ bool isWritable() const { return fromTrool(wri, writableDefault()); }
const PropertyNode *overriddenFrom() const { return overrides; }
private:
@@ -645,11 +664,13 @@ class PropertyNode : public LeafNode
bool storedDefault() const { return true; }
bool designableDefault() const { return !setters().isEmpty(); }
+ bool writableDefault() const { return !setters().isEmpty(); }
QString dt;
NodeList funcs[NumFunctionRoles];
Trool sto;
Trool des;
+ Trool wri;
const PropertyNode *overrides;
};
diff --git a/tools/qdoc3/pagegenerator.cpp b/tools/qdoc3/pagegenerator.cpp
index 83ea561..7d9fbee 100644
--- a/tools/qdoc3/pagegenerator.cpp
+++ b/tools/qdoc3/pagegenerator.cpp
@@ -81,14 +81,13 @@ QString PageGenerator::fileBase(const Node *node)
{
if (node->relates())
node = node->relates();
- else if (!node->isInnerNode()) {
+ else if (!node->isInnerNode())
node = node->parent();
#ifdef QDOC_QML
- if (node->subType() == Node::QmlPropertyGroup) {
- node = node->parent();
- }
-#endif
+ if (node->subType() == Node::QmlPropertyGroup) {
+ node = node->parent();
}
+#endif
QString base = node->doc().baseName();
if (!base.isEmpty())
@@ -97,6 +96,7 @@ QString PageGenerator::fileBase(const Node *node)
const Node *p = node;
forever {
+ const Node *pp = p->parent();
base.prepend(p->name());
#ifdef QDOC_QML
/*
@@ -104,15 +104,10 @@ QString PageGenerator::fileBase(const Node *node)
we prepend "qml-" to the file name of QML element doc
files.
*/
- if ((p->subType() == Node::QmlClass) ||
- (p->subType() == Node::QmlPropertyGroup))
- base.prepend("qml-");
- else if ((p->type() == Node::QmlProperty) ||
- (p->type() == Node::QmlSignal) ||
- (p->type() == Node::QmlMethod))
+ if (p->subType() == Node::QmlClass) {
base.prepend("qml-");
+ }
#endif
- const Node *pp = p->parent();
if (!pp || pp->name().isEmpty() || pp->type() == Node::Fake)
break;
base.prepend(QLatin1Char('-'));
diff --git a/tools/qdoc3/test/classic.css b/tools/qdoc3/test/classic.css
index 320da66..b8cae8e 100644
--- a/tools/qdoc3/test/classic.css
+++ b/tools/qdoc3/test/classic.css
@@ -268,10 +268,15 @@ span.string,span.char
border-style: solid;
border-color: #ddd;
font-weight: bold;
- padding: 6px 0px 6px 10px;
+ padding: 6px 10px 6px 10px;
margin: 42px 0px 0px 0px;
}
+.qmlreadonly {
+ float: right;
+ color: red
+}
+
.qmldoc {
}
diff --git a/tools/qdoc3/test/qt-build-docs.qdocconf b/tools/qdoc3/test/qt-build-docs.qdocconf
index b517206..470ee30 100644
--- a/tools/qdoc3/test/qt-build-docs.qdocconf
+++ b/tools/qdoc3/test/qt-build-docs.qdocconf
@@ -8,10 +8,10 @@ project = Qt
description = Qt Reference Documentation
url = http://qt.nokia.com/doc/4.7
-edition.Desktop.modules = QtCore QtDBus QtGui QtNetwork QtOpenGL QtScript QtSql \
- QtSvg QtWebKit QtXml QtXmlPatterns Qt3Support QtHelp \
- QtDesigner QAxContainer Phonon QAxServer QtUiTools \
- QtTest QtDBus
+edition.Desktop.modules = QtCore QtDBus QtGui QtNetwork QtOpenGL QtScript QtScriptTools QtSql QtSvg \
+ QtWebKit QtXml QtXmlPatterns Qt3Support QtHelp \
+ QtDesigner QtAssistant QAxContainer Phonon \
+ QAxServer QtUiTools QtTest QtDBus
edition.DesktopLight.modules = QtCore QtDBus QtGui Qt3SupportLight QtTest
edition.DesktopLight.groups = -graphicsview-api
diff --git a/tools/qdoc3/test/qt-cpp-ignore.qdocconf b/tools/qdoc3/test/qt-cpp-ignore.qdocconf
index 1efc215..dcf33dc 100644
--- a/tools/qdoc3/test/qt-cpp-ignore.qdocconf
+++ b/tools/qdoc3/test/qt-cpp-ignore.qdocconf
@@ -69,6 +69,7 @@ Cpp.ignoretokens = QAXFACTORY_EXPORT \
QT_END_NAMESPACE \
QT_END_INCLUDE_NAMESPACE \
PHONON_EXPORT \
+ Q_DECLARATIVE_EXPORT \
Q_GADGET \
QWEBKIT_EXPORT
Cpp.ignoredirectives = Q_DECLARE_HANDLE \
diff --git a/tools/qvfb/config.ui b/tools/qvfb/config.ui
index ad9c39e..b74bef7 100644
--- a/tools/qvfb/config.ui
+++ b/tools/qvfb/config.ui
@@ -47,7 +47,7 @@
<x>0</x>
<y>0</y>
<width>600</width>
- <height>665</height>
+ <height>690</height>
</rect>
</property>
<property name="windowTitle">
@@ -118,6 +118,13 @@
</widget>
</item>
<item>
+ <widget class="QRadioButton" name="size_800_480">
+ <property name="text">
+ <string>800x480</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="QRadioButton" name="size_800_600">
<property name="text">
<string>800x600</string>
diff --git a/tools/qvfb/qvfb.cpp b/tools/qvfb/qvfb.cpp
index 59e8dae..09692b7 100644
--- a/tools/qvfb/qvfb.cpp
+++ b/tools/qvfb/qvfb.cpp
@@ -669,6 +669,8 @@ void QVFb::configure()
w=320; h=240;
} else if ( config->size_640_480->isChecked() ) {
w=640; h=480;
+ } else if ( config->size_800_480->isChecked() ) {
+ w=800; h=480;
} else if ( config->size_800_600->isChecked() ) {
w=800; h=600;
} else if ( config->size_1024_768->isChecked() ) {
@@ -748,6 +750,7 @@ void QVFb::chooseSize(const QSize& sz)
config->size_240_320->setChecked(sz == QSize(240,320));
config->size_320_240->setChecked(sz == QSize(320,240));
config->size_640_480->setChecked(sz == QSize(640,480));
+ config->size_800_480->setChecked(sz == QSize(800,480));
config->size_800_600->setChecked(sz == QSize(800,600));
config->size_1024_768->setChecked(sz == QSize(1024,768));
}
diff --git a/tools/tools.pro b/tools/tools.pro
index 4b36115..87ba3c9 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
@@ -26,6 +26,7 @@ mac {
embedded:SUBDIRS += kmap2qmap
+contains(QT_CONFIG, declarative):SUBDIRS += qmlviewer qmldebugger
contains(QT_CONFIG, dbus):SUBDIRS += qdbus
!wince*:contains(QT_CONFIG, xmlpatterns): SUBDIRS += xmlpatterns xmlpatternsvalidator
embedded: SUBDIRS += makeqpf