diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-17 06:18:30 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-17 06:18:30 (GMT) |
commit | 85e625accb7f55b51e19016313bb204f6f0f835c (patch) | |
tree | b60a7fd15f68d49c530bfa3ca326bdcfe070a9c3 /tools | |
parent | 53fd1e2fd9c75d7d55606d4ac5df75eda96b9cc9 (diff) | |
parent | 67d8b96d11b560367f068c2466664898a6fb5aed (diff) | |
download | Qt-85e625accb7f55b51e19016313bb204f6f0f835c.zip Qt-85e625accb7f55b51e19016313bb204f6f0f835c.tar.gz Qt-85e625accb7f55b51e19016313bb204f6f0f835c.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (83 commits)
probably need to update user configurations once in a while too
use dynamicstore instead
Define JS_NO_EXPORT to avoid JSC C API functions being exported
Don't use QScriptValueIterator to iterate over an array
QtScript: Fix regression when calling newQObject() from native constructor
Added note to OS X installation instructions.
Keypress events ignored in listview on Cocoa (64 Bit) with Japanese IME
Update only appropriate rectangles during update_sys().
Marked QTDS obsolete from Qt 4.7.
QNetworkReply: Fix canReadLine()
Abort waiting replies on session error.
different approach to fixing "the other" aliasing issue
fix aliasing issue in node_construct()
detach in fewer cases, remove redundant calculation
SSL: Fix memleak related to local certificate
Improve keyboard layout detection on X11
Compile on ARM with -Werror -Wold-style-cast
Use the vista-style native dialog for QFileDialog::getExistingDirectory
Apply the stdset attribute for resource properties
doc: Completed sentence about HideNameFilterDetails
...
Diffstat (limited to 'tools')
-rw-r--r-- | tools/assistant/lib/qhelpcontentwidget.cpp | 3 | ||||
-rw-r--r-- | tools/assistant/lib/qhelpengine.cpp | 17 | ||||
-rw-r--r-- | tools/assistant/lib/qhelpindexwidget.cpp | 3 | ||||
-rw-r--r-- | tools/assistant/tools/assistant/helpenginewrapper.cpp | 10 | ||||
-rw-r--r-- | tools/assistant/tools/assistant/mainwindow.cpp | 2 | ||||
-rw-r--r-- | tools/configure/configureapp.cpp | 42 | ||||
-rw-r--r-- | tools/designer/src/lib/uilib/properties.cpp | 11 | ||||
-rw-r--r-- | tools/qdbus/qdbusviewer/qdbusmodel.cpp | 14 | ||||
-rw-r--r-- | tools/qdbus/qdbusviewer/qdbusmodel.h | 1 | ||||
-rw-r--r-- | tools/qdbus/qdbusviewer/qdbusviewer.cpp | 97 | ||||
-rw-r--r-- | tools/qdbus/qdbusviewer/qdbusviewer.h | 7 | ||||
-rw-r--r-- | tools/qdoc3/codeparser.cpp | 1 | ||||
-rw-r--r-- | tools/qdoc3/generator.cpp | 4 | ||||
-rw-r--r-- | tools/qdoc3/htmlgenerator.cpp | 9 | ||||
-rw-r--r-- | tools/qdoc3/main.cpp | 7 | ||||
-rw-r--r-- | tools/qdoc3/node.cpp | 23 | ||||
-rw-r--r-- | tools/qdoc3/tree.cpp | 2 | ||||
-rw-r--r-- | tools/qml/content/Browser.qml | 10 | ||||
-rw-r--r-- | tools/qml/qml.pro | 2 |
19 files changed, 184 insertions, 81 deletions
diff --git a/tools/assistant/lib/qhelpcontentwidget.cpp b/tools/assistant/lib/qhelpcontentwidget.cpp index a80dc39..6f3f942 100644 --- a/tools/assistant/lib/qhelpcontentwidget.cpp +++ b/tools/assistant/lib/qhelpcontentwidget.cpp @@ -370,7 +370,8 @@ void QHelpContentModel::invalidateContents(bool onShutDown) delete d->rootItem; d->rootItem = 0; } - reset(); + if (!onShutDown) + reset(); } /*! diff --git a/tools/assistant/lib/qhelpengine.cpp b/tools/assistant/lib/qhelpengine.cpp index 96cf0fd..e8ae31b 100644 --- a/tools/assistant/lib/qhelpengine.cpp +++ b/tools/assistant/lib/qhelpengine.cpp @@ -75,14 +75,15 @@ void QHelpEnginePrivate::init(const QString &collectionFile, { QHelpEngineCorePrivate::init(collectionFile, helpEngineCore); - contentModel = new QHelpContentModel(this); - indexModel = new QHelpIndexModel(this); - - connect(helpEngineCore, SIGNAL(setupFinished()), - this, SLOT(applyCurrentFilter())); - connect(helpEngineCore, SIGNAL(currentFilterChanged(QString)), - this, SLOT(applyCurrentFilter())); - + if (!contentModel) + contentModel = new QHelpContentModel(this); + if (!indexModel) + indexModel = new QHelpIndexModel(this); + + connect(helpEngineCore, SIGNAL(setupFinished()), this, + SLOT(applyCurrentFilter())); + connect(helpEngineCore, SIGNAL(currentFilterChanged(QString)), this, + SLOT(applyCurrentFilter())); } void QHelpEnginePrivate::applyCurrentFilter() diff --git a/tools/assistant/lib/qhelpindexwidget.cpp b/tools/assistant/lib/qhelpindexwidget.cpp index 270bcdd..11b9966 100644 --- a/tools/assistant/lib/qhelpindexwidget.cpp +++ b/tools/assistant/lib/qhelpindexwidget.cpp @@ -244,7 +244,8 @@ void QHelpIndexModel::invalidateIndex(bool onShutDown) disconnect(this, SLOT(insertIndices())); d->indexProvider->stopCollecting(); d->indices.clear(); - filter(QString()); + if (!onShutDown) + filter(QString()); } /*! diff --git a/tools/assistant/tools/assistant/helpenginewrapper.cpp b/tools/assistant/tools/assistant/helpenginewrapper.cpp index 41ad633..9748702 100644 --- a/tools/assistant/tools/assistant/helpenginewrapper.cpp +++ b/tools/assistant/tools/assistant/helpenginewrapper.cpp @@ -112,7 +112,6 @@ private: QFileSystemWatcher * const m_qchWatcher; typedef QPair<QDateTime, QSharedPointer<TimeoutForwarder> > RecentSignal; QMap<QString, RecentSignal> m_recentQchUpdates; - bool m_initialReindexingNeeded; }; const QString HelpEngineWrapper::TrUnfiltered = tr("Unfiltered"); @@ -182,8 +181,7 @@ void HelpEngineWrapper::initialDocSetupDone() TRACE_OBJ connect(d->m_helpEngine, SIGNAL(setupFinished()), searchEngine(), SLOT(indexDocumentation())); - if (d->m_initialReindexingNeeded) - setupData(); + setupData(); } QHelpSearchEngine *HelpEngineWrapper::searchEngine() const @@ -236,7 +234,6 @@ bool HelpEngineWrapper::registerDocumentation(const QString &docFile) return false; d->m_qchWatcher->addPath(docFile); d->checkDocFilesWatched(); - d->m_initialReindexingNeeded = true; return true; } @@ -249,7 +246,6 @@ bool HelpEngineWrapper::unregisterDocumentation(const QString &namespaceName) return false; d->m_qchWatcher->removePath(file); d->checkDocFilesWatched(); - d->m_initialReindexingNeeded = true; return true; } @@ -729,8 +725,7 @@ void TimeoutForwarder::forward() HelpEngineWrapperPrivate::HelpEngineWrapperPrivate(const QString &collectionFile) : m_helpEngine(new QHelpEngine(collectionFile, this)), - m_qchWatcher(new QFileSystemWatcher(this)), - m_initialReindexingNeeded(false) + m_qchWatcher(new QFileSystemWatcher(this)) { TRACE_OBJ if (!m_helpEngine->customFilters().contains(Unfiltered)) @@ -829,7 +824,6 @@ void HelpEngineWrapperPrivate::qchFileChanged(const QString &fileName, } else { emit documentationUpdated(ns); } - m_initialReindexingNeeded = true; m_helpEngine->setupData(); } m_recentQchUpdates.erase(it); diff --git a/tools/assistant/tools/assistant/mainwindow.cpp b/tools/assistant/tools/assistant/mainwindow.cpp index 687e6bc..c403aa7 100644 --- a/tools/assistant/tools/assistant/mainwindow.cpp +++ b/tools/assistant/tools/assistant/mainwindow.cpp @@ -361,6 +361,7 @@ void MainWindow::qtDocumentationInstalled() void MainWindow::checkInitState() { TRACE_OBJ + HelpEngineWrapper::instance().initialDocSetupDone(); if (!m_cmdLine->enableRemoteControl()) return; @@ -381,7 +382,6 @@ void MainWindow::checkInitState() } emit initDone(); } - HelpEngineWrapper::instance().initialDocSetupDone(); } void MainWindow::insertLastPages() diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index dd68fcd..8a47991 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -2082,12 +2082,10 @@ bool Configure::checkAvailability(const QString &part) } } else if (part == "WMSDK") { available = findFile("wmsdk.h"); - } else if (part == "MULTIMEDIA" || part == "SCRIPT" || part == "SCRIPTTOOLS") { + } else if (part == "MULTIMEDIA" || part == "SCRIPT" || part == "SCRIPTTOOLS" || part == "DECLARATIVE") { available = true; } else if (part == "WEBKIT") { available = (dictionary.value("QMAKESPEC") == "win32-msvc2005") || (dictionary.value("QMAKESPEC") == "win32-msvc2008") || (dictionary.value("QMAKESPEC") == "win32-g++"); - } else if (part == "DECLARATIVE") { - available = QFile::exists(sourcePath + "/src/declarative/qml/qdeclarativecomponent.h"); } else if (part == "AUDIO_BACKEND") { available = true; if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) { @@ -2213,7 +2211,7 @@ void Configure::autoDetection() if (dictionary["SCRIPT"] == "auto") dictionary["SCRIPT"] = checkAvailability("SCRIPT") ? "yes" : "no"; if (dictionary["SCRIPTTOOLS"] == "auto") - dictionary["SCRIPTTOOLS"] = checkAvailability("SCRIPTTOOLS") ? "yes" : "no"; + dictionary["SCRIPTTOOLS"] = dictionary["SCRIPT"] == "yes" ? "yes" : "no"; if (dictionary["XMLPATTERNS"] == "auto") dictionary["XMLPATTERNS"] = checkAvailability("XMLPATTERNS") ? "yes" : "no"; if (dictionary["PHONON"] == "auto") @@ -2221,7 +2219,7 @@ void Configure::autoDetection() if (dictionary["WEBKIT"] == "auto") dictionary["WEBKIT"] = checkAvailability("WEBKIT") ? "yes" : "no"; if (dictionary["DECLARATIVE"] == "auto") - dictionary["DECLARATIVE"] = checkAvailability("DECLARATIVE") ? "yes" : "no"; + dictionary["DECLARATIVE"] = dictionary["SCRIPT"] == "yes" ? "yes" : "no"; if (dictionary["AUDIO_BACKEND"] == "auto") dictionary["AUDIO_BACKEND"] = checkAvailability("AUDIO_BACKEND") ? "yes" : "no"; if (dictionary["MEDIASERVICE"] == "auto") @@ -2271,15 +2269,23 @@ bool Configure::verifyConfiguration() if(_getch() == 3) // _Any_ keypress w/no echo(eat <Enter> for stdout) exit(0); // Exit cleanly for Ctrl+C } - if (0 != dictionary["ARM_FPU_TYPE"].size()) - { - QStringList l= QStringList() - << "softvfp" - << "softvfp+vfpv2" - << "vfpv2"; - if (!(l.contains(dictionary["ARM_FPU_TYPE"]))) - cout << QString("WARNING: Using unsupported fpu flag: %1").arg(dictionary["ARM_FPU_TYPE"]) << endl; - } + if (0 != dictionary["ARM_FPU_TYPE"].size()) { + QStringList l= QStringList() + << "softvfp" + << "softvfp+vfpv2" + << "vfpv2"; + if (!(l.contains(dictionary["ARM_FPU_TYPE"]))) + cout << QString("WARNING: Using unsupported fpu flag: %1").arg(dictionary["ARM_FPU_TYPE"]) << endl; + } + if (dictionary["DECLARATIVE"] == "yes" && dictionary["SCRIPT"] == "no") { + cout << "WARNING: To be able to compile QtDeclarative we need to also compile the" << endl + << "QtScript module. If you continue, we will turn on the QtScript module." << endl + << "(Press any key to continue..)"; + if(_getch() == 3) // _Any_ keypress w/no echo(eat <Enter> for stdout) + exit(0); // Exit cleanly for Ctrl+C + + dictionary["SCRIPT"] = "yes"; + } return true; } @@ -2628,8 +2634,14 @@ void Configure::generateOutputVars() if (dictionary["WEBKIT"] == "yes") qtConfig += "webkit"; - if (dictionary["DECLARATIVE"] == "yes") + if (dictionary["DECLARATIVE"] == "yes") { + if (dictionary[ "SCRIPT" ] == "no") { + cout << "QtDeclarative was requested, but it can't be built due to QtScript being " + "disabled." << endl; + dictionary[ "DONE" ] = "error"; + } qtConfig += "declarative"; + } if( dictionary[ "NATIVE_GESTURES" ] == "yes" ) qtConfig += "native-gestures"; diff --git a/tools/designer/src/lib/uilib/properties.cpp b/tools/designer/src/lib/uilib/properties.cpp index 8eccee1..615aa8a 100644 --- a/tools/designer/src/lib/uilib/properties.cpp +++ b/tools/designer/src/lib/uilib/properties.cpp @@ -655,16 +655,21 @@ DomProperty *variantToDomProperty(QAbstractFormBuilder *afb, const QMetaObject * case QVariant::Brush: dom_prop->setElementBrush(afb->saveBrush(qvariant_cast<QBrush>(v))); break; - default: + default: { + const bool hadAttributeStdset = dom_prop->hasAttributeStdset(); + const bool attributeStdset = dom_prop->attributeStdset(); delete dom_prop; if (afb->resourceBuilder()->isResourceType(v)) { dom_prop = afb->resourceBuilder()->saveResource(afb->workingDirectory(), v); - if (dom_prop) + if (dom_prop) { dom_prop->setAttributeName(pname); + if (hadAttributeStdset) + dom_prop->setAttributeStdset(attributeStdset); + } break; } uiLibWarning(msgCannotWriteProperty(pname, v)); - return 0; + } return 0; } return dom_prop; } diff --git a/tools/qdbus/qdbusviewer/qdbusmodel.cpp b/tools/qdbus/qdbusviewer/qdbusmodel.cpp index befe4b4..f85e288 100644 --- a/tools/qdbus/qdbusviewer/qdbusmodel.cpp +++ b/tools/qdbus/qdbusviewer/qdbusmodel.cpp @@ -75,6 +75,7 @@ struct QDBusItem bool isPrefetched; QString name; QString caption; + QString typeSignature; }; QDomDocument QDBusModel::introspect(const QString &path) @@ -118,6 +119,13 @@ void QDBusModel::addMethods(QDBusItem *parent, const QDomElement &iface) item = new QDBusItem(QDBusModel::MethodItem, child.attribute(QLatin1String("name")), parent); item->caption = QLatin1String("Method: ") + item->name; + //get "type" from <arg> where "direction" is "in" + QDomElement n = child.firstChildElement(); + while (!n.isNull()) { + if (n.attribute(QLatin1String("direction")) == QLatin1String("in")) + item->typeSignature += n.attribute(QLatin1String("type")); + n = n.nextSiblingElement(); + } } else if (child.tagName() == QLatin1String("signal")) { item = new QDBusItem(QDBusModel::SignalItem, child.attribute(QLatin1String("name")), parent); @@ -298,6 +306,12 @@ QString QDBusModel::dBusMethodName(const QModelIndex &index) const return item ? item->name : QString(); } +QString QDBusModel::dBusTypeSignature(const QModelIndex &index) const +{ + QDBusItem *item = static_cast<QDBusItem *>(index.internalPointer()); + return item ? item->typeSignature : QString(); +} + QModelIndex QDBusModel::findObject(const QDBusObjectPath &objectPath) { QStringList path = objectPath.path().split(QLatin1Char('/'), QString::SkipEmptyParts); diff --git a/tools/qdbus/qdbusviewer/qdbusmodel.h b/tools/qdbus/qdbusviewer/qdbusmodel.h index 1a3d8f0..e83c381 100644 --- a/tools/qdbus/qdbusviewer/qdbusmodel.h +++ b/tools/qdbus/qdbusviewer/qdbusmodel.h @@ -72,6 +72,7 @@ public: QString dBusPath(const QModelIndex &index) const; QString dBusInterface(const QModelIndex &index) const; QString dBusMethodName(const QModelIndex &index) const; + QString dBusTypeSignature(const QModelIndex &index) const; void refresh(const QModelIndex &index = QModelIndex()); diff --git a/tools/qdbus/qdbusviewer/qdbusviewer.cpp b/tools/qdbus/qdbusviewer/qdbusviewer.cpp index e9695dc..9878aff 100644 --- a/tools/qdbus/qdbusviewer/qdbusviewer.cpp +++ b/tools/qdbus/qdbusviewer/qdbusviewer.cpp @@ -69,9 +69,16 @@ QDBusViewer::QDBusViewer(const QDBusConnection &connection, QWidget *parent) : c(connection), objectPathRegExp(QLatin1String("\\[ObjectPath: (.*)\\]")) { - services = new QTreeWidget; - services->setRootIsDecorated(false); - services->setHeaderLabels(QStringList(QLatin1String("Services"))); + servicesModel = new QStringListModel(this); + servicesFilterModel = new QSortFilterProxyModel(this); + servicesFilterModel->setSourceModel(servicesModel); + servicesFilterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); + serviceFilterLine = new QLineEdit(this); + serviceFilterLine->setPlaceholderText(tr("Search...")); + servicesView = new QListView(this); + servicesView->setModel(servicesFilterModel); + + connect(serviceFilterLine, SIGNAL(textChanged(QString)), servicesFilterModel, SLOT(setFilterFixedString(QString))); tree = new QTreeView; tree->setContextMenuPolicy(Qt::CustomContextMenu); @@ -86,19 +93,28 @@ QDBusViewer::QDBusViewer(const QDBusConnection &connection, QWidget *parent) : QShortcut *refreshShortcut = new QShortcut(QKeySequence::Refresh, tree); connect(refreshShortcut, SIGNAL(activated()), this, SLOT(refreshChildren())); - QVBoxLayout *topLayout = new QVBoxLayout(this); + QVBoxLayout *layout = new QVBoxLayout(this); + QSplitter *topSplitter = new QSplitter(Qt::Vertical, this); + layout->addWidget(topSplitter); + log = new QTextBrowser; connect(log, SIGNAL(anchorClicked(QUrl)), this, SLOT(anchorClicked(QUrl))); - QHBoxLayout *layout = new QHBoxLayout; - layout->addWidget(services, 1); - layout->addWidget(tree, 2); + QSplitter *splitter = new QSplitter(topSplitter); + splitter->addWidget(servicesView); + + QWidget *servicesWidget = new QWidget; + QVBoxLayout *servicesLayout = new QVBoxLayout(servicesWidget); + servicesLayout->addWidget(serviceFilterLine); + servicesLayout->addWidget(servicesView); + splitter->addWidget(servicesWidget); + splitter->addWidget(tree); - topLayout->addLayout(layout); - topLayout->addWidget(log); + topSplitter->addWidget(splitter); + topSplitter->addWidget(log); - connect(services, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), - this, SLOT(serviceChanged(QTreeWidgetItem*))); + connect(servicesView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), + this, SLOT(serviceChanged(QModelIndex))); connect(tree, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showContextMenu(QPoint))); @@ -133,12 +149,11 @@ void QDBusViewer::logError(const QString &msg) void QDBusViewer::refresh() { - services->clear(); + servicesModel->removeRows(0, servicesModel->rowCount()); if (c.isConnected()) { const QStringList serviceNames = c.interface()->registeredServiceNames(); - foreach (QString service, serviceNames) - new QTreeWidgetItem(services, QStringList(service)); + servicesModel->setStringList(serviceNames); } } @@ -154,6 +169,7 @@ void QDBusViewer::activate(const QModelIndex &item) sig.mPath = model->dBusPath(item); sig.mInterface = model->dBusInterface(item); sig.mName = model->dBusMethodName(item); + sig.mTypeSig = model->dBusTypeSignature(item); switch (model->itemType(item)) { case QDBusModel::SignalItem: @@ -207,6 +223,17 @@ void QDBusViewer::setProperty(const BusSignature &sig) } +static QString getDbusSignature(const QMetaMethod& method) +{ + // create a D-Bus type signature from QMetaMethod's parameters + QString sig; + for (int i = 0; i < method.parameterTypes().count(); ++i) { + QVariant::Type type = QVariant::nameToType(method.parameterTypes().at(i)); + sig.append(QString::fromLatin1(QDBusMetaType::typeToSignature(type))); + } + return sig; +} + void QDBusViewer::callMethod(const BusSignature &sig) { QDBusInterface iface(sig.mService, sig.mPath, sig.mInterface, c); @@ -217,7 +244,8 @@ void QDBusViewer::callMethod(const BusSignature &sig) for (int i = 0; i < mo->methodCount(); ++i) { const QString signature = QString::fromLatin1(mo->method(i).signature()); if (signature.startsWith(sig.mName) && signature.at(sig.mName.length()) == QLatin1Char('(')) - method = mo->method(i); + if (getDbusSignature(mo->method(i)) == sig.mTypeSig) + method = mo->method(i); } if (!method.signature()) { QMessageBox::warning(this, tr("Unable to find method"), @@ -277,6 +305,7 @@ void QDBusViewer::showContextMenu(const QPoint &point) sig.mPath = model->dBusPath(item); sig.mInterface = model->dBusInterface(item); sig.mName = model->dBusMethodName(item); + sig.mTypeSig = model->dBusTypeSignature(item); QMenu menu; menu.addAction(refreshAction); @@ -379,14 +408,14 @@ void QDBusViewer::dumpMessage(const QDBusMessage &message) log->append(out); } -void QDBusViewer::serviceChanged(QTreeWidgetItem *item) +void QDBusViewer::serviceChanged(const QModelIndex &index) { delete tree->model(); currentService.clear(); - if (!item) + if (!index.isValid()) return; - currentService = item->text(0); + currentService = index.data().toString(); tree->setModel(new QDBusViewModel(currentService, c)); connect(tree->model(), SIGNAL(busError(QString)), this, SLOT(logError(QString))); @@ -397,34 +426,38 @@ void QDBusViewer::serviceRegistered(const QString &service) if (service == c.baseService()) return; - new QTreeWidgetItem(services, QStringList(service)); + servicesModel->insertRows(0, 1); + servicesModel->setData(servicesModel->index(0, 0), service); } -static QTreeWidgetItem *findItem(const QTreeWidget *services, const QString &name) +static QModelIndex findItem(QStringListModel *servicesModel, const QString &name) { - for (int i = 0; i < services->topLevelItemCount(); ++i) { - if (services->topLevelItem(i)->text(0) == name) - return services->topLevelItem(i); - } - return 0; + QModelIndexList hits = servicesModel->match(servicesModel->index(0, 0), Qt::DisplayRole, name); + if (hits.isEmpty()) + return QModelIndex(); + + return hits.first(); } void QDBusViewer::serviceUnregistered(const QString &name) { - delete findItem(services, name); + QModelIndex hit = findItem(servicesModel, name); + if (!hit.isValid()) + return; + servicesModel->removeRows(hit.row(), 1); } void QDBusViewer::serviceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner) { - QTreeWidgetItem *item = findItem(services, name); + QModelIndex hit = findItem(servicesModel, name); - if (!item && oldOwner.isEmpty() && !newOwner.isEmpty()) + if (!hit.isValid() && oldOwner.isEmpty() && !newOwner.isEmpty()) serviceRegistered(name); - else if (item && !oldOwner.isEmpty() && newOwner.isEmpty()) - delete item; - else if (item && !oldOwner.isEmpty() && !newOwner.isEmpty()) { - delete item; + else if (hit.isValid() && !oldOwner.isEmpty() && newOwner.isEmpty()) + servicesModel->removeRows(hit.row(), 1); + else if (hit.isValid() && !oldOwner.isEmpty() && !newOwner.isEmpty()) { + servicesModel->removeRows(hit.row(), 1); serviceRegistered(name); } } diff --git a/tools/qdbus/qdbusviewer/qdbusviewer.h b/tools/qdbus/qdbusviewer/qdbusviewer.h index 207f7a3..d5d1a69 100644 --- a/tools/qdbus/qdbusviewer/qdbusviewer.h +++ b/tools/qdbus/qdbusviewer/qdbusviewer.h @@ -52,6 +52,7 @@ QT_FORWARD_DECLARE_CLASS(QDomElement); struct BusSignature { QString mService, mPath, mInterface, mName; + QString mTypeSig; }; class QDBusViewer: public QWidget @@ -65,7 +66,7 @@ public slots: void about(); private slots: - void serviceChanged(QTreeWidgetItem *item); + void serviceChanged(const QModelIndex &index); void showContextMenu(const QPoint &); void connectionRequested(const BusSignature &sig); void callMethod(const BusSignature &sig); @@ -91,6 +92,10 @@ private: QTreeView *tree; QAction *refreshAction; QTreeWidget *services; + QStringListModel *servicesModel; + QSortFilterProxyModel *servicesFilterModel; + QLineEdit *serviceFilterLine; + QListView *servicesView; QTextBrowser *log; QRegExp objectPathRegExp; }; diff --git a/tools/qdoc3/codeparser.cpp b/tools/qdoc3/codeparser.cpp index 042378e..a717ff1 100644 --- a/tools/qdoc3/codeparser.cpp +++ b/tools/qdoc3/codeparser.cpp @@ -47,6 +47,7 @@ #include "node.h" #include "tree.h" #include "config.h" +#include <QDebug> QT_BEGIN_NAMESPACE diff --git a/tools/qdoc3/generator.cpp b/tools/qdoc3/generator.cpp index 80f7e45..0c6497b 100644 --- a/tools/qdoc3/generator.cpp +++ b/tools/qdoc3/generator.cpp @@ -1194,10 +1194,14 @@ void Generator::appendSortedQmlNames(Text& text, QMap<QString,Text> classMap; int index = 0; +#ifdef DEBUG_MULTIPLE QDOCCONF_FILES qDebug() << "Generator::appendSortedQmlNames():" << base->name() << "is inherited by..."; +#endif for (int i = 0; i < subs.size(); ++i) { Text t; +#ifdef DEBUG_MULTIPLE QDOCCONF_FILES qDebug() << " " << subs[i]->name(); +#endif appendFullName(t, subs[i], base, marker); classMap[t.toString().toLower()] = t; } diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index 411a886..c1e3678 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -703,8 +703,6 @@ int HtmlGenerator::generateAtom(const Atom *atom, case Node::Fake: if (node->subType() == Node::QmlClass) { sections[QmlClass].appendMember((Node*)node); - //qDebug() << "HtmlGenerator::generateAtom(): Atom::SinceList, append" - // << node->name(); } break; case Node::Namespace: @@ -3769,7 +3767,6 @@ void HtmlGenerator::findAllSince(const InnerNode *node) className = (*child)->parent()->name()+"::"+className; nsmap.value().insert(className,(*child)); nqcmap.value().insert(className,(*child)); - //qDebug() << "findAllSince(): insert" << className << sinceVersion; } } else { @@ -3991,10 +3988,12 @@ QString HtmlGenerator::getLink(const Atom *atom, } else { *node = marker->resolveTarget(first, myTree, relative); - if (!*node) + if (!*node) { *node = myTree->findFakeNodeByTitle(first); - if (!*node) + } + if (!*node) { *node = myTree->findUnambiguousTarget(first, targetAtom); + } } if (*node) { diff --git a/tools/qdoc3/main.cpp b/tools/qdoc3/main.cpp index ea843ba..fe4ad86 100644 --- a/tools/qdoc3/main.cpp +++ b/tools/qdoc3/main.cpp @@ -70,6 +70,7 @@ #include "webxmlgenerator.h" #include "tokenizer.h" #include "tree.h" +#include <qdebug.h> #include "qtranslator.h" #ifndef QT_BOOTSTRAPPED @@ -362,7 +363,13 @@ static void processQdocconfFile(const QString &fileName) #ifndef QT_NO_TRANSLATION qDeleteAll(translators); #endif +#ifdef DEBUG_SHUTDOWN_CRASH + qDebug() << "main(): Delete tree"; +#endif delete tree; +#ifdef DEBUG_SHUTDOWN_CRASH + qDebug() << "main(): Tree deleted"; +#endif } QT_END_NAMESPACE diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp index d4e4196..d60ff73 100644 --- a/tools/qdoc3/node.cpp +++ b/tools/qdoc3/node.cpp @@ -207,16 +207,33 @@ InnerNode::~InnerNode() } /*! + Find the node in this node's children that has the + given \a name. If this node is a QML class node, be + sure to also look in the children of its property + group nodes. Return the matching node or 0. */ Node *InnerNode::findNode(const QString& name) { Node *node = childMap.value(name); if (node) return node; + if ((type() == Fake) && (subType() == QmlClass)) { + for (int i=0; i<children.size(); ++i) { + Node* n = children.at(i); + if (n->subType() == QmlPropertyGroup) { + node = static_cast<InnerNode*>(n)->findNode(name); + if (node) + return node; + } + } + } return primaryFunctionMap.value(name); } /*! + Same as the other findNode(), but if the node with the + specified \a name is not of the specified \a type, return + 0. */ Node *InnerNode::findNode(const QString& name, Type type) { @@ -1280,7 +1297,9 @@ QmlClassNode::QmlClassNode(InnerNode *parent, */ QmlClassNode::~QmlClassNode() { +#ifdef DEBUG_MULTIPLE QDOCCONF_FILES qDebug() << "Deleting QmlClassNode:" << name(); +#endif } /*! @@ -1315,7 +1334,9 @@ QString QmlClassNode::fileBase() const void QmlClassNode::addInheritedBy(const QString& base, Node* sub) { inheritedBy.insert(base,sub); +#ifdef DEBUG_MULTIPLE QDOCCONF_FILES qDebug() << "QmlClassNode::addInheritedBy(): insert" << base << sub->name() << inheritedBy.size(); +#endif } /*! @@ -1326,8 +1347,10 @@ void QmlClassNode::subclasses(const QString& base, NodeList& subs) subs.clear(); if (inheritedBy.count(base) > 0) { subs = inheritedBy.values(base); +#ifdef DEBUG_MULTIPLE QDOCCONF_FILES qDebug() << "QmlClassNode::subclasses():" << inheritedBy.count(base) << base << "subs:" << subs.size() << "total size:" << inheritedBy.size(); +#endif } } diff --git a/tools/qdoc3/tree.cpp b/tools/qdoc3/tree.cpp index 922c23e..7dcc8c3 100644 --- a/tools/qdoc3/tree.cpp +++ b/tools/qdoc3/tree.cpp @@ -54,6 +54,7 @@ #include "tree.h" #include <limits.h> +#include <qdebug.h> QT_BEGIN_NAMESPACE @@ -150,6 +151,7 @@ const Node *Tree::findNode(const QStringList &path, const Node *next = static_cast<const InnerNode*>(node)->findNode(path.at(i)); + if (!next && (findFlags & SearchEnumValues) && i == path.size()-1) next = static_cast<const InnerNode*>(node)->findEnumNodeForValue(path.at(i)); diff --git a/tools/qml/content/Browser.qml b/tools/qml/content/Browser.qml index 35120bc..62996ef 100644 --- a/tools/qml/content/Browser.qml +++ b/tools/qml/content/Browser.qml @@ -137,12 +137,12 @@ Rectangle { Transition { to: "current" SequentialAnimation { - NumberAnimation { matchProperties: "x"; duration: 250 } + NumberAnimation { properties: "x"; duration: 250 } } }, Transition { - NumberAnimation { matchProperties: "x"; duration: 250 } - NumberAnimation { matchProperties: "x"; duration: 250 } + NumberAnimation { properties: "x"; duration: 250 } + NumberAnimation { properties: "x"; duration: 250 } } ] Keys.onPressed: { root.keyPressed = true; } @@ -177,11 +177,11 @@ Rectangle { Transition { to: "current" SequentialAnimation { - NumberAnimation { matchProperties: "x"; duration: 250 } + NumberAnimation { properties: "x"; duration: 250 } } }, Transition { - NumberAnimation { matchProperties: "x"; duration: 250 } + NumberAnimation { properties: "x"; duration: 250 } } ] Keys.onPressed: { root.keyPressed = true; } diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro index 9b68dbc..a7eb6f5 100644 --- a/tools/qml/qml.pro +++ b/tools/qml/qml.pro @@ -55,6 +55,6 @@ symbian { include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 HEADERS += $$QT_SOURCE_TREE/examples/network/qftp/sym_iap_util.h - LIBS += -lesock -lconnmon -linsock + LIBS += -lesock -lcommdb -lconnmon -linsock TARGET.CAPABILITY = "All -TCB" } |