##// END OF EJS Templates
QBoxSet changed from list to table mode. New example for file reading....
QBoxSet changed from list to table mode. New example for file reading. Change-Id: Iae0c8a2598572c4eb554b626ff746fd116520121 Reviewed-by: Mika Salmela <mika.salmela@digia.com>

File last commit:

r2405:92b9e13486f5 release-1.2.0
r2508:25def4b65f99
Show More
qmlapplicationviewer.cpp
177 lines | 4.9 KiB | text/x-c | CppLexer
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405 // checksum 0xbd34 version 0x80016
Tero Ahola
QML demo with dynamic data
r1240 /*
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 <QDir>
#include <QFileInfo>
#include <QApplication>
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405 #include <QDeclarativeComponent>
#include <QDeclarativeEngine>
#include <QDeclarativeContext>
Tero Ahola
QML demo with dynamic data
r1240 #include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN
#ifdef HARMATTAN_BOOSTER
#include <MDeclarativeCache>
#endif
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
#include <qt_private/qdeclarativedebughelper_p.h>
#if !defined(NO_JSDEBUGGER)
#include <jsdebuggeragent.h>
#endif
#if !defined(NO_QMLOBSERVER)
#include <qdeclarativeviewobserver.h>
#endif
// 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_MAC
if (!QDir::isAbsolutePath(path))
return QString::fromLatin1("%1/../Resources/%2")
.arg(QCoreApplication::applicationDirPath(), path);
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405 #elif defined(Q_OS_QNX)
if (!QDir::isAbsolutePath(path))
return QString::fromLatin1("app/native/%1").arg(path);
#elif !defined(Q_OS_ANDROID)
QString pathInInstallDir =
Tero Ahola
QML demo with dynamic data
r1240 QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
if (QFileInfo(pathInInstallDir).exists())
return pathInInstallDir;
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405 pathInInstallDir =
QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), path);
if (QFileInfo(pathInInstallDir).exists())
return pathInInstallDir;
Tero Ahola
QML demo with dynamic data
r1240 #endif
return path;
}
QmlApplicationViewer::QmlApplicationViewer(QWidget *parent)
: QDeclarativeView(parent)
, d(new QmlApplicationViewerPrivate())
{
connect(engine(), SIGNAL(quit()), SLOT(close()));
setResizeMode(QDeclarativeView::SizeRootObjectToView);
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405
Tero Ahola
QML demo with dynamic data
r1240 // Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
#if !defined(NO_JSDEBUGGER)
new QmlJSDebugger::JSDebuggerAgent(engine());
#endif
#if !defined(NO_QMLOBSERVER)
new QmlJSDebugger::QDeclarativeViewObserver(this, this);
#endif
#endif
}
QmlApplicationViewer::~QmlApplicationViewer()
{
delete d;
}
QmlApplicationViewer *QmlApplicationViewer::create()
{
return new QmlApplicationViewer();
}
void QmlApplicationViewer::setMainQmlFile(const QString &file)
{
d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405 #ifdef Q_OS_ANDROID
setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile));
#else
Tero Ahola
QML demo with dynamic data
r1240 setSource(QUrl::fromLocalFile(d->mainQmlFile));
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405 #endif
Tero Ahola
QML demo with dynamic data
r1240 }
void QmlApplicationViewer::addImportPath(const QString &path)
{
engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
}
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405 void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
{
#if QT_VERSION < 0x050000
Qt::WidgetAttribute attribute;
switch (orientation) {
#if QT_VERSION < 0x040702
// Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
case ScreenOrientationLockPortrait:
attribute = static_cast<Qt::WidgetAttribute>(128);
break;
case ScreenOrientationLockLandscape:
attribute = static_cast<Qt::WidgetAttribute>(129);
break;
default:
case ScreenOrientationAuto:
attribute = static_cast<Qt::WidgetAttribute>(130);
break;
#else // QT_VERSION < 0x040702
case ScreenOrientationLockPortrait:
attribute = Qt::WA_LockPortraitOrientation;
break;
case ScreenOrientationLockLandscape:
attribute = Qt::WA_LockLandscapeOrientation;
break;
default:
case ScreenOrientationAuto:
attribute = Qt::WA_AutoOrientation;
break;
#endif // QT_VERSION < 0x040702
};
setAttribute(attribute, true);
#else // QT_VERSION < 0x050000
Q_UNUSED(orientation)
#endif // QT_VERSION < 0x050000
}
Tero Ahola
QML demo with dynamic data
r1240
void QmlApplicationViewer::showExpanded()
{
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405 #if defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
Tero Ahola
QML demo with dynamic data
r1240 showFullScreen();
Tero Ahola
Forced update of qmlapplicationviewer templates
r2405 #elif defined(Q_WS_MAEMO_5) || defined(Q_OS_QNX)
Tero Ahola
QML demo with dynamic data
r1240 showMaximized();
#else
show();
#endif
}
QApplication *createApplication(int &argc, char **argv)
{
#ifdef HARMATTAN_BOOSTER
return MDeclarativeCache::qApplication(argc, argv);
#else
return new QApplication(argc, argv);
#endif
}