// checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. QmlApplicationViewer is a convenience class containing mobile device specific code such as screen orientation handling. Also QML paths and debugging are handled here. It is recommended not to modify this file, since newer versions of Qt Creator may offer an updated version of it. */ #include "qmlapplicationviewer.h" #include #include #include #include #include #include #if defined(QMLJSDEBUGGER) #include #endif #if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER) #include #endif #if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER) #include #endif #if defined(Q_OS_SYMBIAN) && defined(ORIENTATIONLOCK) #include #include #include #include #endif // Q_OS_SYMBIAN && ORIENTATIONLOCK #if defined(QMLJSDEBUGGER) // Enable debugging before any QDeclarativeEngine is created struct QmlJsDebuggingEnabler { QmlJsDebuggingEnabler() { QDeclarativeDebugHelper::enableDebugging(); } }; // Execute code in constructor before first QDeclarativeEngine is instantiated static QmlJsDebuggingEnabler enableDebuggingHelper; #endif // QMLJSDEBUGGER class QmlApplicationViewerPrivate { QString mainQmlFile; friend class QmlApplicationViewer; static QString adjustPath(const QString &path); }; QString QmlApplicationViewerPrivate::adjustPath(const QString &path) { #ifdef Q_OS_UNIX #ifdef Q_OS_MAC if (!QDir::isAbsolutePath(path)) return QCoreApplication::applicationDirPath() + QLatin1String("/../Resources/") + path; #else const QString pathInShareDir = QCoreApplication::applicationDirPath() + QLatin1String("/../share/") + QFileInfo(QCoreApplication::applicationFilePath()).fileName() + QLatin1Char('/') + path; if (QFileInfo(pathInShareDir).exists()) return pathInShareDir; #endif #endif return path; } QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) : QDeclarativeView(parent), m_d(new QmlApplicationViewerPrivate) { connect(engine(), SIGNAL(quit()), SLOT(close())); setResizeMode(QDeclarativeView::SizeRootObjectToView); #if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER) new QmlJSDebugger::JSDebuggerAgent(engine()); #endif #if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER) new QmlJSDebugger::QDeclarativeViewObserver(this, parent); #endif } QmlApplicationViewer::~QmlApplicationViewer() { delete m_d; } void QmlApplicationViewer::setMainQmlFile(const QString &file) { m_d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file); setSource(QUrl::fromLocalFile(m_d->mainQmlFile)); } void QmlApplicationViewer::addImportPath(const QString &path) { engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path)); } void QmlApplicationViewer::setOrientation(ScreenOrientation orientation) { #ifdef Q_OS_SYMBIAN if (orientation != ScreenOrientationAuto) { #if defined(ORIENTATIONLOCK) const CAknAppUiBase::TAppUiOrientation uiOrientation = (orientation == ScreenOrientationLockPortrait) ? CAknAppUi::EAppUiOrientationPortrait : CAknAppUi::EAppUiOrientationLandscape; CAknAppUi* appUi = dynamic_cast (CEikonEnv::Static()->AppUi()); TRAPD(error, if (appUi) appUi->SetOrientationL(uiOrientation); ); Q_UNUSED(error) #else // ORIENTATIONLOCK qWarning("'ORIENTATIONLOCK' needs to be defined on Symbian when locking the orientation."); #endif // ORIENTATIONLOCK } #elif defined(Q_WS_MAEMO_5) Qt::WidgetAttribute attribute; switch (orientation) { case ScreenOrientationLockPortrait: attribute = Qt::WA_Maemo5PortraitOrientation; break; case ScreenOrientationLockLandscape: attribute = Qt::WA_Maemo5LandscapeOrientation; break; case ScreenOrientationAuto: default: attribute = Qt::WA_Maemo5AutoOrientation; break; } setAttribute(attribute, true); #else // Q_OS_SYMBIAN Q_UNUSED(orientation); #endif // Q_OS_SYMBIAN } void QmlApplicationViewer::showExpanded() { #ifdef Q_OS_SYMBIAN showFullScreen(); #elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) showMaximized(); #else show(); #endif }