--- a/demos/qtdemo/menumanager.cpp Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/qtdemo/menumanager.cpp Mon Oct 04 01:19:32 2010 +0300
@@ -313,7 +313,7 @@
// Send command through remote control even if the process
// was started to activate assistant and bring it to front:
QTextStream str(&this->assistantProcess);
- str << "SetSource " << url << QLatin1Char('\0') << endl;
+ str << "SetSource " << url << QLatin1Char('\n') << endl;
}
void MenuManager::launchExample(const QString &name)
@@ -356,6 +356,7 @@
void MenuManager::launchQmlExample(const QString &name)
{
+#ifndef QT_NO_DECLARATIVE
if(!qmlRoot){
exampleError(QProcess::UnknownError);
return;
@@ -382,6 +383,15 @@
qmlRoot->setProperty("qmlFile", QVariant(""));//unload component
qmlRoot->setProperty("show", QVariant(true));
qmlRoot->setProperty("qmlFile", QUrl::fromLocalFile(file.fileName()));
+#else
+ exampleError(QProcess::UnknownError);
+#endif
+}
+
+void MenuManager::quitQML()
+{
+ if(qmlRoot)
+ qmlRoot->setProperty("show", QVariant(false));
}
void MenuManager::exampleFinished()
@@ -427,21 +437,28 @@
level2MenuNode = level2MenuNode.nextSibling();
}
+ qmlRoot = 0;
+#ifndef QT_NO_DECLARATIVE
// Create QML Loader
declarativeEngine = new QDeclarativeEngine(this);
+ connect(declarativeEngine, SIGNAL(quit()),
+ this, SLOT(quitQML()));
QDeclarativeComponent component(declarativeEngine, QUrl("qrc:qml/qmlShell.qml"), this);
- qmlRoot = 0;
- if(component.isReady())
- qmlRoot = qobject_cast<QDeclarativeItem*>(component.create());
- else
+ QDeclarativeItem* qmlRootItem = 0;
+ if(component.isReady()){
+ qmlRoot = component.create();
+ qmlRootItem = qobject_cast<QDeclarativeItem*>(qmlRoot);
+ }else{
qDebug() << component.status() << component.errorString();
- if(qmlRoot){
- qmlRoot->setHeight(this->window->scene->sceneRect().height());
- qmlRoot->setWidth(this->window->scene->sceneRect().width());
- qmlRoot->setZValue(101);//Above other items
- qmlRoot->setCursor(Qt::ArrowCursor);
- window->scene->addItem(qmlRoot);
+ }
+
+ if(qmlRootItem){
+ qmlRootItem->setHeight(this->window->scene->sceneRect().height());
+ qmlRootItem->setWidth(this->window->scene->sceneRect().width());
+ qmlRootItem->setZValue(101);//Above other items
+ qmlRootItem->setCursor(Qt::ArrowCursor);
+ window->scene->addItem(qmlRootItem);
//Note that QML adds key handling to the app.
window->viewport()->setFocusPolicy(Qt::NoFocus);//Correct keyboard focus handling
@@ -449,8 +466,9 @@
window->scene->setStickyFocus(true);
window->setFocus();
}else{
- qDebug() << "Error intializing QML subsystem, Declarative examples will not work";
+ qDebug() << "Error initializing QML subsystem, Declarative examples will not work";
}
+#endif
}
void MenuManager::readInfoAboutExample(const QDomElement &example)