forked from qt-creator/qt-creator
		
	Change-Id: If68e0c62781b235c2f0e573afe6d0e28709f28f3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
  This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
 | 
						|
  QtQuick2ControlsApplicationViewer is a convenience class.
 | 
						|
  QML paths 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 "qtquick2controlsapplicationviewer.h"
 | 
						|
 | 
						|
#include <QCoreApplication>
 | 
						|
#include <QDir>
 | 
						|
#include <QQmlComponent>
 | 
						|
#include <QQmlEngine>
 | 
						|
#include <QQuickView>
 | 
						|
 | 
						|
class QtQuick2ApplicationViewerPrivate
 | 
						|
{
 | 
						|
    QString mainQmlFile;
 | 
						|
    QQmlEngine engine;
 | 
						|
    QQuickWindow *window;
 | 
						|
 | 
						|
    QtQuick2ApplicationViewerPrivate() : window(0)
 | 
						|
    {}
 | 
						|
 | 
						|
    ~QtQuick2ApplicationViewerPrivate()
 | 
						|
    {
 | 
						|
        delete window;
 | 
						|
    }
 | 
						|
 | 
						|
    static QString adjustPath(const QString &path);
 | 
						|
 | 
						|
    friend class QtQuick2ControlsApplicationViewer;
 | 
						|
};
 | 
						|
 | 
						|
QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path)
 | 
						|
{
 | 
						|
#if defined(Q_OS_MAC)
 | 
						|
    if (!QDir::isAbsolutePath(path))
 | 
						|
        return QStringLiteral("%1/../Resources/%2")
 | 
						|
                .arg(QCoreApplication::applicationDirPath(), path);
 | 
						|
#elif defined(Q_OS_BLACKBERRY)
 | 
						|
    if (!QDir::isAbsolutePath(path))
 | 
						|
        return QStringLiteral("app/native/%1").arg(path);
 | 
						|
#elif !defined(Q_OS_ANDROID)
 | 
						|
    QString pathInInstallDir =
 | 
						|
            QStringLiteral("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
 | 
						|
    if (QFileInfo(pathInInstallDir).exists())
 | 
						|
        return pathInInstallDir;
 | 
						|
    pathInInstallDir =
 | 
						|
            QStringLiteral("%1/%2").arg(QCoreApplication::applicationDirPath(), path);
 | 
						|
    if (QFileInfo(pathInInstallDir).exists())
 | 
						|
        return pathInInstallDir;
 | 
						|
#endif
 | 
						|
    return path;
 | 
						|
}
 | 
						|
 | 
						|
QtQuick2ControlsApplicationViewer::QtQuick2ControlsApplicationViewer()
 | 
						|
    : d(new QtQuick2ApplicationViewerPrivate())
 | 
						|
{
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
QtQuick2ControlsApplicationViewer::~QtQuick2ControlsApplicationViewer()
 | 
						|
{
 | 
						|
    delete d;
 | 
						|
}
 | 
						|
 | 
						|
void QtQuick2ControlsApplicationViewer::setMainQmlFile(const QString &file)
 | 
						|
{
 | 
						|
    d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file);
 | 
						|
 | 
						|
    QQmlComponent component(&d->engine);
 | 
						|
 | 
						|
    QObject::connect(&d->engine, SIGNAL(quit()), QCoreApplication::instance(), SLOT(quit()));
 | 
						|
 | 
						|
#ifdef Q_OS_ANDROID
 | 
						|
    component.loadUrl(QUrl(QStringLiteral("assets:/")+d->mainQmlFile));
 | 
						|
#else
 | 
						|
    component.loadUrl(QUrl::fromLocalFile(d->mainQmlFile));
 | 
						|
#endif
 | 
						|
 | 
						|
    if (!component.isReady())
 | 
						|
        qWarning("%s", qPrintable(component.errorString()));
 | 
						|
 | 
						|
    d->window = qobject_cast<QQuickWindow *>(component.create());
 | 
						|
    if (!d->window)
 | 
						|
        qFatal("Error: Your root item has to be a Window.");
 | 
						|
 | 
						|
    d->engine.setIncubationController(d->window->incubationController());
 | 
						|
}
 | 
						|
 | 
						|
void QtQuick2ControlsApplicationViewer::addImportPath(const QString &path)
 | 
						|
{
 | 
						|
    d->engine.addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path));
 | 
						|
}
 | 
						|
 | 
						|
void QtQuick2ControlsApplicationViewer::show()
 | 
						|
{
 | 
						|
    if (d->window)
 | 
						|
        d->window->show();
 | 
						|
}
 |