QValidator::State Private::FileSystemPathValidator::validate(const QString &path, const QVector<QStringRef> &pathComponents, bool strict, int firstComponentToTest, int lastComponentToTest) const { Q_ASSERT(firstComponentToTest >= 0); Q_ASSERT(lastComponentToTest >= firstComponentToTest); Q_ASSERT(lastComponentToTest < pathComponents.size()); m_lastTestResult = TestResult::DoesNotExist; if (pathComponents.empty()) return strict ? QValidator::Invalid : QValidator::Intermediate; for (int i = firstComponentToTest; i < lastComponentToTest; ++i) { if (pathComponents[i].isEmpty()) continue; QStringRef componentPath(&path, 0, pathComponents[i].position() + pathComponents[i].size()); m_lastTestResult = testPath(componentPath, false); if (m_lastTestResult != TestResult::OK) { m_lastTestedPath = componentPath.toString(); return strict ? QValidator::Invalid : QValidator::Intermediate; } } const bool finalPath = (lastComponentToTest == (pathComponents.size() - 1)); QStringRef componentPath(&path, 0, pathComponents[lastComponentToTest].position() + pathComponents[lastComponentToTest].size()); m_lastTestResult = testPath(componentPath, finalPath); if (m_lastTestResult != TestResult::OK) { m_lastTestedPath = componentPath.toString(); return strict ? QValidator::Invalid : QValidator::Intermediate; } return QValidator::Acceptable; }
int main(int argc, char **argv) { #if defined(Q_WS_X11) #if QT_VERSION >= 0x040800 QApplication::setAttribute(Qt::AA_X11InitThreads, true); #else XInitThreads(); QApplication::setAttribute(static_cast<Qt::ApplicationAttribute>(10), true); #endif #endif { QApplication app(argc, argv); { bool isOpenGL = false; for (int index = 1; index < argc; ++index) { if (strcmp(argv[index], "-opengl") == 0) { isOpenGL = true; break; } } QTestRunner runn(isOpenGL, argc, argv); QTimer::singleShot(0, &runn, SLOT(DropInStartup())); // These components must be loaded before app start QString componentPath(DEFAULT_COMPONENTS_PATH); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/components") + QString("/EmbedLiteBinComponents.manifest")); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/chrome") + QString("/EmbedLiteJSScripts.manifest")); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/chrome") + QString("/EmbedLiteOverrides.manifest")); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/components") + QString("/EmbedLiteJSComponents.manifest")); QMozContext::GetInstance()->runEmbedding(); } app.quit(); } return 0; }
int main(int argc, char **argv) { { QGuiApplication app(argc, argv); { bool isOpenGL = false; for (int index = 1; index < argc; ++index) { if (strcmp(argv[index], "-opengl") == 0) { isOpenGL = true; break; } } QTestRunner runn(isOpenGL, argc, argv); QTimer::singleShot(0, &runn, SLOT(DropInStartup())); // These components must be loaded before app start QString componentPath(DEFAULT_COMPONENTS_PATH); QMozContext::GetInstance()->setCompositorInSeparateThread(true); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/components") + QString("/EmbedLiteBinComponents.manifest")); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/chrome") + QString("/EmbedLiteJSScripts.manifest")); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/chrome") + QString("/EmbedLiteOverrides.manifest")); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/components") + QString("/EmbedLiteJSComponents.manifest")); QMozContext::GetInstance()->runEmbedding(); } app.quit(); } return 0; }
Q_DECL_EXPORT int main(int argc, char *argv[]) { // EGL FPS are lower with threaded render loop // that's why this workaround. // See JB#7358 setenv("QML_BAD_GUI_RENDER_LOOP", "1", 1); setenv("USE_ASYNC", "1", 1); // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=929879 setenv("LC_NUMERIC", "C", 1); setlocale(LC_NUMERIC, "C"); #ifdef HAS_BOOSTER QScopedPointer<QGuiApplication> app(MDeclarativeCache::qApplication(argc, argv)); QScopedPointer<QQuickView> view(MDeclarativeCache::qQuickView()); #else QScopedPointer<QGuiApplication> app(new QGuiApplication(argc, argv)); QScopedPointer<QQuickView> view(new QQuickView); #endif app->setQuitOnLastWindowClosed(false); // TODO : Remove this and set custom user agent always // Don't set custom user agent string when arguments contains -developerMode, give url as last argument if (!app->arguments().contains("-developerMode")) { setenv("CUSTOM_UA", "Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:26.0) Gecko/26.0 Firefox/26.0 SailfishBrowser/1.0 like Safari/538.1", 1); } BrowserService *service = new BrowserService(app.data()); // Handle command line launch if (!service->registered()) { QDBusMessage message = QDBusMessage::createMethodCall(service->serviceName(), "/", service->serviceName(), "openUrl"); QStringList args; // Pass url argument if given if (app->arguments().count() > 1) { args << app->arguments().at(1); } message.setArguments(QVariantList() << args); QDBusConnection::sessionBus().asyncCall(message); if (QCoreApplication::hasPendingEvents()) { QCoreApplication::processEvents(); } return 0; } QString translationPath("/usr/share/translations/"); QTranslator engineeringEnglish; engineeringEnglish.load("sailfish-browser_eng_en", translationPath); qApp->installTranslator(&engineeringEnglish); QTranslator translator; translator.load(QLocale(), "sailfish-browser", "-", translationPath); qApp->installTranslator(&translator); //% "Browser" view->setTitle(qtTrId("sailfish-browser-ap-name")); qmlRegisterType<DeclarativeBookmarkModel>("Sailfish.Browser", 1, 0, "BookmarkModel"); qmlRegisterType<DeclarativeTabModel>("Sailfish.Browser", 1, 0, "TabModel"); qmlRegisterType<DeclarativeHistoryModel>("Sailfish.Browser", 1, 0, "HistoryModel"); qmlRegisterType<DeclarativeTab>("Sailfish.Browser", 1, 0, "Tab"); qmlRegisterType<DeclarativeWebContainer>("Sailfish.Browser", 1, 0, "WebContainer"); QString componentPath(DEFAULT_COMPONENTS_PATH); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/components/EmbedLiteBinComponents.manifest")); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/components/EmbedLiteJSComponents.manifest")); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/chrome/EmbedLiteJSScripts.manifest")); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/chrome/EmbedLiteOverrides.manifest")); app->setApplicationName(QString("sailfish-browser")); app->setOrganizationName(QString("org.sailfishos")); DeclarativeWebUtils * utils = new DeclarativeWebUtils(app->arguments(), service, app.data()); utils->clearStartupCacheIfNeeded(); view->rootContext()->setContextProperty("WebUtils", utils); view->rootContext()->setContextProperty("MozContext", QMozContext::GetInstance()); DownloadManager * dlMgr = new DownloadManager(service, app.data()); CloseEventFilter * clsEventFilter = new CloseEventFilter(dlMgr, app.data()); view->installEventFilter(clsEventFilter); QObject::connect(service, SIGNAL(openUrlRequested(QString)), clsEventFilter, SLOT(cancelStopApplication())); SettingManager * settingMgr = new SettingManager(app.data()); QObject::connect(QMozContext::GetInstance(), SIGNAL(onInitialized()), settingMgr, SLOT(initialize())); QObject::connect(QMozContext::GetInstance(), SIGNAL(newWindowRequested(QString)), utils, SLOT(openUrl(QString))); #ifdef USE_RESOURCES view->setSource(QUrl("qrc:///browser.qml")); #else bool isDesktop = qApp->arguments().contains("-desktop"); QString path; if (isDesktop) { path = qApp->applicationDirPath() + QDir::separator(); } else { path = QString(DEPLOYMENT_PATH); } view->setSource(QUrl::fromLocalFile(path+"browser.qml")); #endif view->showFullScreen(); // Setup embedding QTimer::singleShot(0, QMozContext::GetInstance(), SLOT(runEmbedding())); return app->exec(); }
int main(int argc, char **argv) { setenv("QML_BAD_GUI_RENDER_LOOP", "1", 1); QGuiApplication app(argc, argv); QString path, urlstring, qmlstring; bool isFullscreen = false; QStringList arguments = app.arguments(); for (int i = 0; i < arguments.count(); ++i) { QString parameter = arguments.at(i); if (parameter == "-path") { if (i + 1 >= arguments.count()) qFatal("-path requires an argument"); path = arguments.at(i + 1); i++; } else if (parameter == "-url") { if (i + 1 >= arguments.count()) qFatal("-url requires an argument"); urlstring = arguments.at(i + 1); i++; } else if (parameter == "-qml") { if (i + 1 >= arguments.count()) qFatal("-qml requires an argument"); qmlstring = arguments.at(i + 1); i++; } else if (parameter == "-fullscreen") { isFullscreen = true; } else if (parameter == "-help") { qDebug() << "EMail application"; qDebug() << "-fullscreen - show QML fullscreen"; qDebug() << "-path - path to cd to before launching -url"; qDebug() << "-qml - file to launch (default: main.qml inside -path)"; qDebug() << "-url - url to load"; exit(0); } } QQuickView view; view.setResizeMode(QQuickView::SizeRootObjectToView); view.rootContext()->setContextProperty("startURL", QVariant(urlstring)); view.rootContext()->setContextProperty("createParentID", QVariant(0)); view.rootContext()->setContextProperty("MozContext", QMozContext::GetInstance()); view.setSource(qmlstring.isEmpty() ? QUrl("qrc:/qml/MainPageQuick.qml") : QUrl(qmlstring)); if (isFullscreen) { QRect r = QGuiApplication::primaryScreen()->geometry(); view.resize(r.width(), r.height()); view.showFullScreen(); } else { view.resize(800, 600); view.show(); } QString componentPath(DEFAULT_COMPONENTS_PATH); qDebug() << "Load components from:" << componentPath + QString("/components") + QString("/EmbedLiteBinComponents.manifest"); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/components") + QString("/EmbedLiteBinComponents.manifest")); qDebug() << "Load components from:" << componentPath + QString("/components") + QString("/EmbedLiteJSComponents.manifest"); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/components") + QString("/EmbedLiteJSComponents.manifest")); qDebug() << "Load components from:" << componentPath + QString("/chrome") + QString("/EmbedLiteJSScripts.manifest"); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/chrome") + QString("/EmbedLiteJSScripts.manifest")); qDebug() << "Load components from:" << componentPath + QString("/chrome") + QString("/EmbedLiteOverrides.manifest"); QMozContext::GetInstance()->addComponentManifest(componentPath + QString("/chrome") + QString("/EmbedLiteOverrides.manifest")); QTimer::singleShot(0, QMozContext::GetInstance(), SLOT(runEmbedding())); return app.exec(); }