// QTBUG-17324 void tst_qdeclarativemoduleplugin::importsMixedQmlCppPlugin() { QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); { QDeclarativeComponent component(&engine, testFileUrl("importsMixedQmlCppPlugin.qml")); QObject *o = component.create(); QVERIFY2(o, msgComponentError(component, &engine).constData()); QCOMPARE(o->property("test").toBool(), true); delete o; } { QDeclarativeComponent component(&engine, testFileUrl("importsMixedQmlCppPlugin.2.qml")); QObject *o = component.create(); QVERIFY(o != 0); QCOMPARE(o->property("test").toBool(), true); QCOMPARE(o->property("test2").toBool(), true); delete o; } }
int main(int argc, char **argv) { qRegisterMetaType<QVector<QFileInfo> >(); qmlRegisterType<DirModel>("FBrowser", 1, 0, "DirModel"); QApplication a(argc, argv); QDeclarativeView v; QDeclarativeEngine *e = v.engine(); e->addImageProvider(QLatin1String("nemoThumbnail"), new FileThumbnailImageProvider); QDeclarativeContext *c = v.rootContext(); c->setContextProperty("fileBrowserUtils", new Utils); if (QFile::exists("main.qml")) v.setSource(QUrl::fromLocalFile("main.qml")); else v.setSource(QUrl("qrc:/qml/main.qml")); if (QCoreApplication::arguments().contains("-fullscreen")) { qDebug() << Q_FUNC_INFO << "Starting in fullscreen mode"; v.showFullScreen(); } else { qDebug() << Q_FUNC_INFO << "Starting in windowed mode"; v.show(); } return a.exec(); }
void tst_qdeclarativemoduleplugin::incorrectPluginCase() { QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); QDeclarativeComponent component(&engine, testFileUrl("incorrectCase.qml")); QList<QDeclarativeError> errors = component.errors(); QCOMPARE(errors.count(), 1); QString expectedError = QLatin1String("module \"org.qtproject.WrongCase\" plugin \"PluGin\" not found"); #if defined(Q_OS_MAC) || defined(Q_OS_WIN32) bool caseSensitive = true; #if defined(Q_OS_MAC) caseSensitive = pathconf(QDir::currentPath().toLatin1().constData(), _PC_CASE_SENSITIVE); QString libname = "libPluGin.dylib"; #elif defined(Q_OS_WIN32) caseSensitive = false; QString libname = "PluGin.dll"; #endif if (!caseSensitive) expectedError = QLatin1String("plugin cannot be loaded for module \"org.qtproject.WrongCase\": File name case mismatch for \"") + QDir(importsDirectory()).filePath("org/qtproject/WrongCase/" + libname) + QLatin1String("\""); #endif QCOMPARE(errors.at(0).description(), expectedError); }
SFAbstractApplicationUI::SFAbstractApplicationUI(bb::cascades::Application *app) : QObject(app) { //register meta types for SF classes and enums sfRegisterMetaTypes(); //Setup SFDC connection info SFAccountManager::setClientId(SFRemoteAccessConsumerKey); SFAccountManager::setRedirectUri(SFOAuthRedirectURI); //In addition, you can set up scope for your token like below. /* QList<QString> scopes; scopes.append("api"); SFAccountManager::setScopes(scopes); */ //setup API objects SFRestAPI::instance()->setApiVersion(SFDefaultRestApiVersion); //Expose API objects to QML QDeclarativeEngine *engine = QmlDocument::defaultDeclarativeEngine(); QDeclarativeContext *context = engine ? engine->rootContext() : NULL; if (context) { context->setContextProperty("SFAccountManager", SFAccountManager::instance()); context->setContextProperty("SFAuthenticationManager", SFAuthenticationManager::instance()); context->setContextProperty("SFRestAPI", SFRestAPI::instance()); } else { sfWarning() << "[SFAbstractApplicationUI] Failed to grab shared QML declarative engine. SF APIs may not be accessible in QML."; } //connect some slots connect(app, SIGNAL(aboutToQuit()), SFAuthenticationManager::instance(), SLOT(onAboutToQuit())); connect(app, SIGNAL(fullscreen()), SFAuthenticationManager::instance(), SLOT(onAppStart())); }
void tst_QDeclarativePropertyMap::changed() { QDeclarativePropertyMap map; QSignalSpy spy(&map, SIGNAL(valueChanged(const QString&, const QVariant&))); map.insert(QLatin1String("key1"),100); map.insert(QLatin1String("key2"),200); QCOMPARE(spy.count(), 0); map.clear(QLatin1String("key1")); QCOMPARE(spy.count(), 0); //make changes in QML QDeclarativeEngine engine; QDeclarativeContext *ctxt = engine.rootContext(); ctxt->setContextProperty(QLatin1String("testdata"), &map); QDeclarativeComponent component(&engine); component.setData("import QtQuick 1.0\nText { text: { testdata.key1 = 'Hello World'; 'X' } }", QUrl::fromLocalFile("")); QVERIFY(component.isReady()); QDeclarativeText *txt = qobject_cast<QDeclarativeText*>(component.create()); QVERIFY(txt); QCOMPARE(txt->text(), QString('X')); QCOMPARE(spy.count(), 1); QList<QVariant> arguments = spy.takeFirst(); QCOMPARE(arguments.count(), 2); QCOMPARE(arguments.at(0).toString(),QLatin1String("key1")); QCOMPARE(arguments.at(1).value<QVariant>(),QVariant("Hello World")); QCOMPARE(map.value(QLatin1String("key1")), QVariant("Hello World")); }
int main(int argc, char *argv[]) { QApplication app(argc, argv); QDeclarativeView view; QDeclarativeEngine *engine = view.engine(); AccelerometerReader reader; engine->rootContext()->setContextProperty("accelerometerReader", &reader); view.setSource(QUrl("qrc:/Gui.qml")); view.setResizeMode(QDeclarativeView::SizeRootObjectToView); #if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN) || defined(Q_WS_SIMULATOR) view.setGeometry(QApplication::desktop()->screenGeometry()); view.showFullScreen(); #else view.setGeometry((QRect(100, 100, 800, 480))); view.show(); #endif return app.exec(); }
// QTBUG-17324 void tst_qdeclarativemoduleplugin::importsMixedQmlCppPlugin() { QDeclarativeEngine engine; engine.addImportPath(QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("imports")); { QDeclarativeComponent component(&engine, TEST_FILE("data/importsMixedQmlCppPlugin.qml")); QObject *o = component.create(); QVERIFY(o != 0); QCOMPARE(o->property("test").toBool(), true); delete o; } { QDeclarativeComponent component(&engine, TEST_FILE("data/importsMixedQmlCppPlugin.2.qml")); QObject *o = component.create(); QVERIFY(o != 0); QCOMPARE(o->property("test").toBool(), true); QCOMPARE(o->property("test2").toBool(), true); delete o; } }
DockModeClockWindow::DockModeClockWindow(const QPixmap& pixmap, DockModeWindowManager* dm, int zValue) : DockModeWindow (WindowType::Type_DockModeWindow, pixmap) { setFlag (QGraphicsItem::ItemHasNoContents); setBoundingRect (pixmap.width(), pixmap.height()); setName (LOCALIZED("Time")); setAppId ("com.palm.dockmodetime"); QDeclarativeEngine* qmlEngine = WindowServer::instance()->declarativeEngine(); if(qmlEngine) { QDeclarativeContext* context = qmlEngine->rootContext(); Settings* settings = Settings::LunaSettings(); std::string systemMenuQmlPath = settings->lunaQmlUiComponentsPath + "DockModeTime/Clocks.qml"; QUrl url = QUrl::fromLocalFile(systemMenuQmlPath.c_str()); m_qmlNotifMenu = new QDeclarativeComponent(qmlEngine, url, this); if(m_qmlNotifMenu) { m_clockObject = qobject_cast<QGraphicsObject *>(m_qmlNotifMenu->create()); if(m_clockObject) { m_clockObject->setPos (boundingRect().x(), boundingRect().y()); m_clockObject->setParentItem(this); } } } }
MainWindow::MainWindow(QGraphicsScene *parent) : QGraphicsView(parent) { QGraphicsScene *mainScene = new QGraphicsScene; setScene(mainScene); setFrameShape(QFrame::NoFrame); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate); setCacheMode( QGraphicsView::CacheBackground ); setAttribute(Qt::WA_TranslucentBackground, false); setBackgroundBrush(QBrush(Qt::black, Qt::SolidPattern)); QDir templateDir = QApplication::applicationDirPath(); templateDir.cdUp(); templateDir.cd("app"); qDebug() << "Loading file: " << templateDir.filePath("index.html"); QGraphicsScene *scene = new QGraphicsScene; QDeclarativeEngine *engine = new QDeclarativeEngine; QDeclarativeComponent component(engine, QUrl::fromLocalFile(QApplication::applicationDirPath() + QLatin1String("/../qml/browser.qml"))); qDebug() << component.errors(); notifier = new Notifier(); QObject *comp = component.create(); QMLDialog = comp->findChild<QDeclarativeItem*>("dialog"); QMLGallery = comp->findChild<QDeclarativeItem*>("gallery"); QMLWebView = comp->findChild<QDeclarativeItem*>("webView"); engine->rootContext()->setContextProperty("notifier", notifier); ((QDeclarativeWebView*) QMLWebView)->setPage(new WebPage()); QMLWebView->setProperty("pageUrl", "../app/index.html"); ((QDeclarativeWebView*) QMLWebView)->page()->settings()->setAttribute(QWebSettings::LocalStorageEnabled, true); ((QDeclarativeWebView*) QMLWebView)->page()->settings()->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, true); ((QDeclarativeWebView*) QMLWebView)->page()->settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, true); ((QDeclarativeWebView*) QMLWebView)->page()->settings()->setAttribute(QWebSettings::TiledBackingStoreEnabled, true); ((QDeclarativeWebView*) QMLWebView)->settings()->enablePersistentStorage(); QMLWebView->setCacheMode(QGraphicsItem::DeviceCoordinateCache); new Extensions(((QDeclarativeWebView*) QMLWebView)); scene->addItem(qobject_cast<QGraphicsItem*>(comp)); scene->setSceneRect(0,0,width(),height()); scene->setItemIndexMethod(QGraphicsScene::NoIndex); QMLView = new QGraphicsView( this ); QMLView->setScene( scene ); QMLView->setGeometry(0,0,width(),height()); QMLView->setStyleSheet( "background: transparent; border: none;" ); QMLView->setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate); QMLView->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); QMLView->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); QMLView->setCacheMode( QGraphicsView::CacheBackground ); QMLView->setFrameShape(QFrame::NoFrame); ((QDeclarativeWebView*) QMLWebView)->page()->mainFrame()->evaluateJavaScript("window._nativeReady = true"); // Tell PhoneGap that init is complete. }
void tst_qdeclarativeengine::rootContext() { QDeclarativeEngine engine; QVERIFY(engine.rootContext()); QCOMPARE(engine.rootContext()->engine(), &engine); QVERIFY(engine.rootContext()->parentContext() == 0); }
void tst_qdeclarativemoduleplugin::versionNotInstalled() { QFETCH(QString, file); QFETCH(QString, errorFile); QDeclarativeEngine engine; engine.addImportPath(QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("imports")); QDeclarativeComponent component(&engine, TEST_FILE(file)); VERIFY_ERRORS(errorFile.toLatin1().constData()); }
void tst_qdeclarativemoduleplugin::versionNotInstalled() { QFETCH(QString, file); QFETCH(QString, errorFile); QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); QDeclarativeComponent component(&engine, testFileUrl(file)); VERIFY_ERRORS(errorFile.toLatin1().constData()); }
static void alternative() { // Alternatively, if we don't actually want to display main.qml: //![1] QDeclarativeEngine engine; QDeclarativeContext *windowContext = new QDeclarativeContext(engine.rootContext()); windowContext->setContextProperty("backgroundColor", QColor(Qt::yellow)); QDeclarativeComponent component(&engine, "main.qml"); QObject *window = component.create(windowContext); //![1] }
QTM_USE_NAMESPACE Q_DECL_EXPORT int main(int argc, char *argv[]) { QCoreApplication::setOrganizationName("Synchroma"); QCoreApplication::setOrganizationDomain("synchroma.com.au"); QCoreApplication::setApplicationName("Arca"); QScopedPointer<QApplication> app(createApplication(argc, argv)); QmlApplicationViewer viewer; QDeclarativeEngine *engine = viewer.engine(); QDeclarativeContext *context = engine->rootContext(); DBSession session; session.setConsumerKey(DROPBOX_APP_KEY); session.setConsumerSecret(DROPBOX_APP_SECRET); // Have the REST client visible in the QML DBRestClient restClient(session); context->setContextProperty("restClient", &restClient); // TESTING context->setContextProperty("param", QString(argv[1])); // TESTING qDebug() << "temp dir: " << QDir::tempPath(); qDebug() << "home dir: " << QDir::homePath(); qDebug() << "current dir: " << QDir::currentPath(); QServiceManager serviceManager(QService::SystemScope); QStringList stringList = serviceManager.findServices(); foreach (QString interfaceName, stringList) qDebug() << "service interface: " << interfaceName; QList<QServiceInterfaceDescriptor> descriptors = serviceManager.findInterfaces(); for (int i=0; i<descriptors.count(); i++) { QString service = descriptors[i].serviceName(); if (descriptors[i].scope() == QService::SystemScope) service += " (system)"; qDebug() << "service: " << service; } viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); viewer.setMainQmlFile(QLatin1String("qml/arca/main.qml")); viewer.showExpanded(); return app->exec(); }
void tst_qdeclarativeengine::clearComponentCache() { QDeclarativeEngine engine; // Create original qml file { QFile file("temp.qml"); QVERIFY(file.open(QIODevice::WriteOnly)); file.write("import QtQuick 1.0\nQtObject {\nproperty int test: 10\n}\n"); file.close(); } // Test "test" property { QDeclarativeComponent component(&engine, "temp.qml"); QObject *obj = component.create(); QVERIFY(obj != 0); QCOMPARE(obj->property("test").toInt(), 10); delete obj; } // Modify qml file { QFile file("temp.qml"); QVERIFY(file.open(QIODevice::WriteOnly)); file.write("import QtQuick 1.0\nQtObject {\nproperty int test: 11\n}\n"); file.close(); } // Test cache hit { QDeclarativeComponent component(&engine, "temp.qml"); QObject *obj = component.create(); QVERIFY(obj != 0); QCOMPARE(obj->property("test").toInt(), 10); delete obj; } // Clear cache engine.clearComponentCache(); // Test cache refresh { QDeclarativeComponent component(&engine, "temp.qml"); QObject *obj = component.create(); QVERIFY(obj != 0); QCOMPARE(obj->property("test").toInt(), 11); delete obj; } }
void tst_qdeclarativemoduleplugin::importsPlugin21() { QDeclarativeEngine engine; engine.addImportPath(QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("imports")); QTest::ignoreMessage(QtWarningMsg, "plugin2.1 created"); QTest::ignoreMessage(QtWarningMsg, "import2.1 worked"); QDeclarativeComponent component(&engine, TEST_FILE("data/works21.qml")); foreach (QDeclarativeError err, component.errors()) qWarning() << err; VERIFY_ERRORS(0); QObject *object = component.create(); QVERIFY(object != 0); QCOMPARE(object->property("value").toInt(),123); delete object; }
void tst_qdeclarativemoduleplugin::importsPlugin21() { QDeclarativeEngine engine; engine.addImportPath(importsDirectory()); QTest::ignoreMessage(QtWarningMsg, "plugin2.1 created"); QTest::ignoreMessage(QtWarningMsg, "import2.1 worked"); QDeclarativeComponent component(&engine, testFileUrl("works21.qml")); foreach (QDeclarativeError err, component.errors()) qWarning() << err; VERIFY_ERRORS(0); QObject *object = component.create(); QVERIFY(object != 0); QCOMPARE(object->property("value").toInt(),123); delete object; }
void tst_qsganimatedimage::progressAndStatusChanges() { TestHTTPServer server(14449); QVERIFY(server.isValid()); server.serveDirectory(SRCDIR "/data"); QDeclarativeEngine engine; QString componentStr = "import QtQuick 2.0\nAnimatedImage { source: srcImage }"; QDeclarativeContext *ctxt = engine.rootContext(); ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/stickman.gif")); QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QSGImage *obj = qobject_cast<QSGImage*>(component.create()); QVERIFY(obj != 0); QVERIFY(obj->status() == QSGImage::Ready); QTRY_VERIFY(obj->progress() == 1.0); QSignalSpy sourceSpy(obj, SIGNAL(sourceChanged(const QUrl &))); QSignalSpy progressSpy(obj, SIGNAL(progressChanged(qreal))); QSignalSpy statusSpy(obj, SIGNAL(statusChanged(QSGImageBase::Status))); // Loading local file ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/colors.gif")); QTRY_VERIFY(obj->status() == QSGImage::Ready); QTRY_VERIFY(obj->progress() == 1.0); QTRY_COMPARE(sourceSpy.count(), 1); QTRY_COMPARE(progressSpy.count(), 0); QTRY_COMPARE(statusSpy.count(), 0); // Loading remote file ctxt->setContextProperty("srcImage", "http://127.0.0.1:14449/stickman.gif"); QTRY_VERIFY(obj->status() == QSGImage::Loading); QTRY_VERIFY(obj->progress() == 0.0); QTRY_VERIFY(obj->status() == QSGImage::Ready); QTRY_VERIFY(obj->progress() == 1.0); QTRY_COMPARE(sourceSpy.count(), 2); QTRY_VERIFY(progressSpy.count() > 1); QTRY_COMPARE(statusSpy.count(), 2); ctxt->setContextProperty("srcImage", ""); QTRY_VERIFY(obj->status() == QSGImage::Null); QTRY_VERIFY(obj->progress() == 0.0); QTRY_COMPARE(sourceSpy.count(), 3); QTRY_VERIFY(progressSpy.count() > 2); QTRY_COMPARE(statusSpy.count(), 3); }
void tst_qdeclarativeengine::networkAccessManager() { QDeclarativeEngine *engine = new QDeclarativeEngine; // Test QDeclarativeEngine created manager QPointer<QNetworkAccessManager> manager = engine->networkAccessManager(); QVERIFY(manager != 0); delete engine; // Test factory created manager engine = new QDeclarativeEngine; NetworkAccessManagerFactory factory; engine->setNetworkAccessManagerFactory(&factory); QVERIFY(engine->networkAccessManagerFactory() == &factory); QVERIFY(engine->networkAccessManager() == factory.manager); delete engine; }
void QmlBeam::reloadQML(QUrl mainFile) { // The mainFile parameter is ignored, instead a property is used to cover non-default asset names. Q_UNUSED(mainFile); // Get the context of the first scene root to keep the contextProperties. QDeclarativeContext* context = QDeclarativeEngine::contextForObject(mRoot); // Clear the QML cache. QDeclarativeEngine* appEngine = context->engine(); appEngine->clearComponentCache(); // Reload all QML. QmlDocument* qml = QmlDocument::create(mMainFile); AbstractPane *root = qml->createRootObject < AbstractPane > (context); // qml->setParent(root); Application::instance()->setScene(root); }
void tst_qdeclarativeengine::outputWarningsToStandardError() { QDeclarativeEngine engine; QCOMPARE(engine.outputWarningsToStandardError(), true); QDeclarativeComponent c(&engine); c.setData("import QtQuick 1.0; QtObject { property int a: undefined }", QUrl()); QVERIFY(c.isReady() == true); warnings.clear(); QtMessageHandler old = qInstallMessageHandler(msgHandler); QObject *o = c.create(); qInstallMessageHandler(old); QVERIFY(o != 0); delete o; QCOMPARE(warnings.count(), 1); QCOMPARE(warnings.at(0), QLatin1String("<Unknown File>:1: Unable to assign [undefined] to int a")); warnings.clear(); engine.setOutputWarningsToStandardError(false); QCOMPARE(engine.outputWarningsToStandardError(), false); old = qInstallMessageHandler(msgHandler); o = c.create(); qInstallMessageHandler(old); QVERIFY(o != 0); delete o; QCOMPARE(warnings.count(), 0); }
void tst_qdeclarativeengine::offlineStoragePath() { // Without these set, QDesktopServices::storageLocation returns // strings with extra "//" at the end. We set them to ignore this problem. qApp->setApplicationName("tst_qdeclarativeengine"); qApp->setOrganizationName("QtProject"); qApp->setOrganizationDomain("www.qt-project.org"); QDeclarativeEngine engine; QDir dir(QStandardPaths::standardLocations(QStandardPaths::DataLocation).front()); dir.mkpath("QML"); dir.cd("QML"); dir.mkpath("OfflineStorage"); dir.cd("OfflineStorage"); QCOMPARE(QDir::fromNativeSeparators(engine.offlineStoragePath()), dir.path()); engine.setOfflineStoragePath(QDir::homePath()); QCOMPARE(engine.offlineStoragePath(), QDir::homePath()); }
void tst_qdeclarativeengine::contextForObject() { QDeclarativeEngine *engine = new QDeclarativeEngine; // Test null-object QVERIFY(QDeclarativeEngine::contextForObject(0) == 0); // Test an object with no context QObject object; QVERIFY(QDeclarativeEngine::contextForObject(&object) == 0); // Test setting null-object QDeclarativeEngine::setContextForObject(0, engine->rootContext()); // Test setting null-context QDeclarativeEngine::setContextForObject(&object, 0); // Test setting context QDeclarativeEngine::setContextForObject(&object, engine->rootContext()); QVERIFY(QDeclarativeEngine::contextForObject(&object) == engine->rootContext()); QDeclarativeContext context(engine->rootContext()); // Try changing context QTest::ignoreMessage(QtWarningMsg, "QDeclarativeEngine::setContextForObject(): Object already has a QDeclarativeContext"); QDeclarativeEngine::setContextForObject(&object, &context); QVERIFY(QDeclarativeEngine::contextForObject(&object) == engine->rootContext()); // Delete context delete engine; engine = 0; QVERIFY(QDeclarativeEngine::contextForObject(&object) == 0); }
void tst_qdeclarativemoduleplugin::importPluginWithQmlFile() { QString path = QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("imports"); // QTBUG-16885: adding an import path with a lower-case "c:" causes assert failure // (this only happens if the plugin includes pure QML files) #ifdef Q_OS_WIN QVERIFY(path.at(0).isUpper() && path.at(1) == QLatin1Char(':')); path = path.at(0).toLower() + path.mid(1); #endif QDeclarativeEngine engine; engine.addImportPath(path); QDeclarativeComponent component(&engine, TEST_FILE("data/pluginWithQmlFile.qml")); foreach (QDeclarativeError err, component.errors()) qWarning() << err; VERIFY_ERRORS(0); QObject *object = component.create(); QVERIFY(object != 0); delete object; }
void tst_qdeclarativemoduleplugin::remoteImportWithUnquotedUri() { TestHTTPServer server(SERVER_PORT); QVERIFY(server.isValid()); server.serveDirectory(SRCDIR "/imports"); QDeclarativeEngine engine; engine.addImportPath(QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("imports")); QDeclarativeComponent component(&engine); component.setData("import com.nokia.PureQmlModule 1.0 \nComponentA { width: 300; ComponentB{} }", QUrl()); QTRY_COMPARE(component.status(), QDeclarativeComponent::Ready); QObject *object = component.create(); QVERIFY(object != 0); QCOMPARE(object->property("width").toInt(), 300); delete object; foreach (QDeclarativeError err, component.errors()) qWarning() << err; VERIFY_ERRORS(0); }
void tst_qdeclarativelistreference::engineTypes() { QDeclarativeEngine engine; QDeclarativeComponent component(&engine, TEST_FILE("engineTypes.qml")); QObject *o = component.create(); QVERIFY(o); QDeclarativeProperty p1(o, QLatin1String("myList")); QVERIFY(p1.propertyTypeCategory() == QDeclarativeProperty::Normal); QDeclarativeProperty p2(o, QLatin1String("myList"), engine.rootContext()); QVERIFY(p2.propertyTypeCategory() == QDeclarativeProperty::List); QVariant v = p2.read(); QVERIFY(v.userType() == qMetaTypeId<QDeclarativeListReference>()); QDeclarativeListReference ref = qvariant_cast<QDeclarativeListReference>(v); QVERIFY(ref.count() == 2); QVERIFY(ref.listElementType()); QVERIFY(ref.listElementType() != &QObject::staticMetaObject); delete o; }
void tst_qdeclarativemoduleplugin::importPath() { #ifndef Q_OS_SYMBIAN QSKIP("Import path order testing for Symbian only", SkipAll); #else QDeclarativeEngine engine; QStringList imports = engine.importPathList(); QString installImportsPath = QDir::cleanPath(QLibraryInfo::location(QLibraryInfo::ImportsPath)); QString driveOrder(QLatin1String("ZABCDEFGHIJKLMNOPQRSTUVWXY")); int lastOrder = 30; foreach(QString import, imports) { if (import.endsWith(installImportsPath)) { int order = driveOrder.indexOf(import[0]); QVERIFY(order < lastOrder); lastOrder = order; } } QVERIFY(lastOrder != 30); #endif }
void tst_qdeclarativemoduleplugin::implicitQmldir() { QFETCH(QString, directory); QFETCH(QString, file); QFETCH(QString, errorFile); QString importPath = QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("data") + QDir::separator() + directory; QString fileName = QLatin1String("data") + QDir::separator() + directory + QDir::separator() + file; QString errorFileName = directory + QDir::separator() + errorFile; QUrl testFileUrl = TEST_FILE(fileName); QDeclarativeEngine engine; engine.addImportPath(importPath); QDeclarativeComponent component(&engine, testFileUrl); QList<QDeclarativeError> errors = component.errors(); VERIFY_ERRORS(errorFileName.toLatin1().constData()); QTest::ignoreMessage(QtWarningMsg, "QDeclarativeComponent: Component is not ready"); QObject *obj = component.create(); QVERIFY(!obj); delete obj; }
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); QStringList arguments = qApp->arguments(); Q_ASSERT_X(arguments.size() > 1, "AdiumWebView", "Application must be provide by single argument - path to theme"); m_style.setStylePath(arguments.at(1)); ui->comboBox->blockSignals(true); ui->comboBox->addItems(m_style.variants()); ui->comboBox->setCurrentIndex(ui->comboBox->findText(m_style.activeVariant())); ui->comboBox->blockSignals(false); m_preview = WebKitPreviewLoader().loadPreview(SHARE_PATH + QLatin1String("Preview.plist")); { // QWebView fillPage(ui->webView->page()); // QTimer::singleShot(1000, this, SLOT(onTimer())); } { // QDeclarativeView // QWebPage *page = new QWebPage(this); // qmlRegisterType<WebKitDeclarativeView>("org.adium", 0, 1, "WebChatView"); QString baseHtml = m_style.baseTemplateForChat(m_preview->chat); ui->declarativeView->setResizeMode(QDeclarativeView::SizeRootObjectToView); QDeclarativeEngine *engine = ui->declarativeView->engine(); QDeclarativeContext *context = engine->rootContext(); QVariantMap data; data.insert("baseHtml", baseHtml); data.insert("scripts", contentScripts()); context->setContextProperty("adiumData", data); // context->setContextProperty("adiumData", qVariantFromValue<QObject*>(page)); // ui->declarativeView->setSource(SHARE_PATH + QLatin1String("qml/ChatView.qml")); // fillPage(page); } // fillPage(ui->webView->page()); }
void tst_qdeclarativemoduleplugin::incorrectPluginCase() { QDeclarativeEngine engine; engine.addImportPath(QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("imports")); QDeclarativeComponent component(&engine, TEST_FILE("data/incorrectCase.qml")); QList<QDeclarativeError> errors = component.errors(); QCOMPARE(errors.count(), 1); #if defined(Q_OS_MAC) || defined(Q_OS_WIN32) #if defined(Q_OS_MAC) QString libname = "libPluGin.dylib"; #elif defined(Q_OS_WIN32) QString libname = "PluGin.dll"; #endif QString expectedError = QLatin1String("plugin cannot be loaded for module \"com.nokia.WrongCase\": File name case mismatch for \"") + QFileInfo(__FILE__).absoluteDir().filePath("imports/com/nokia/WrongCase/" + libname) + QLatin1String("\""); #else QString expectedError = QLatin1String("module \"com.nokia.WrongCase\" plugin \"PluGin\" not found"); #endif QCOMPARE(errors.at(0).description(), expectedError); }