qmlFrontend/qtquick2applicationviewer/qtquick2applicationviewer.cpp
branchqmlfrontend
changeset 10402 3313336c1ee0
equal deleted inserted replaced
10401:c31276023295 10402:3313336c1ee0
       
     1 // checksum 0x4f6f version 0x90005
       
     2 /*
       
     3   This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
       
     4   QtQuick2ApplicationViewer is a convenience class containing mobile device specific
       
     5   code such as screen orientation handling. Also QML paths and debugging are
       
     6   handled here.
       
     7   It is recommended not to modify this file, since newer versions of Qt Creator
       
     8   may offer an updated version of it.
       
     9 */
       
    10 
       
    11 #include "qtquick2applicationviewer.h"
       
    12 
       
    13 #include <QtCore/QCoreApplication>
       
    14 #include <QtCore/QDir>
       
    15 #include <QtQml/QQmlEngine>
       
    16 
       
    17 class QtQuick2ApplicationViewerPrivate
       
    18 {
       
    19     QString mainQmlFile;
       
    20     friend class QtQuick2ApplicationViewer;
       
    21     static QString adjustPath(const QString &path);
       
    22 };
       
    23 
       
    24 QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path)
       
    25 {
       
    26 #if defined(Q_OS_MAC)
       
    27     if (!QDir::isAbsolutePath(path))
       
    28         return QString::fromLatin1("%1/../Resources/%2")
       
    29                 .arg(QCoreApplication::applicationDirPath(), path);
       
    30 #elif defined(Q_OS_BLACKBERRY)
       
    31     if (!QDir::isAbsolutePath(path))
       
    32         return QString::fromLatin1("app/native/%1").arg(path);
       
    33 #elif !defined(Q_OS_ANDROID)
       
    34     QString pathInInstallDir =
       
    35             QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
       
    36     if (QFileInfo(pathInInstallDir).exists())
       
    37         return pathInInstallDir;
       
    38     pathInInstallDir =
       
    39             QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), path);
       
    40     if (QFileInfo(pathInInstallDir).exists())
       
    41         return pathInInstallDir;
       
    42 #endif
       
    43     return path;
       
    44 }
       
    45 
       
    46 QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent)
       
    47     : QQuickView(parent)
       
    48     , d(new QtQuick2ApplicationViewerPrivate())
       
    49 {
       
    50     connect(engine(), SIGNAL(quit()), SLOT(close()));
       
    51     setResizeMode(QQuickView::SizeRootObjectToView);
       
    52 }
       
    53 
       
    54 QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer()
       
    55 {
       
    56     delete d;
       
    57 }
       
    58 
       
    59 void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file)
       
    60 {
       
    61     d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file);
       
    62 #ifdef Q_OS_ANDROID
       
    63     setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile));
       
    64 #else
       
    65     setSource(QUrl::fromLocalFile(d->mainQmlFile));
       
    66 #endif
       
    67 }
       
    68 
       
    69 void QtQuick2ApplicationViewer::addImportPath(const QString &path)
       
    70 {
       
    71     engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path));
       
    72 }
       
    73 
       
    74 void QtQuick2ApplicationViewer::showExpanded()
       
    75 {
       
    76 #if defined(Q_WS_SIMULATOR) || defined(Q_OS_QNX)
       
    77     showFullScreen();
       
    78 #else
       
    79     show();
       
    80 #endif
       
    81 }