##// END OF EJS Templates
Fixed a Qt5 build issue in presenterchart test app
Fixed a Qt5 build issue in presenterchart test app

File last commit:

r2247:c28e9eaa694f
r2368:6a035c04dc6b
Show More
qmlapplicationviewer.cpp
200 lines | 6.1 KiB | text/x-c | CppLexer
Tero Ahola
Demo about creating a custom legend on QML
r2069 // checksum 0x78c version 0x60010
/*
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 <QtCore/QDir>
#include <QtCore/QFileInfo>
Jani Honkonen
Fixing qml build for latest Qt5...
r2247 #include <QtDeclarative/QDeclarativeComponent>
#include <QtDeclarative/QDeclarativeEngine>
#include <QtDeclarative/QDeclarativeContext>
Jani Honkonen
qmlcustomlegend: fix qt5 build
r2077 #include <QApplication>
Tero Ahola
Demo about creating a custom legend on QML
r2069
#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
{
QmlApplicationViewerPrivate(QDeclarativeView *view_) : view(view_) {}
QString mainQmlFile;
QDeclarativeView *view;
friend class QmlApplicationViewer;
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
QString pathInInstallDir;
const QString applicationDirPath = QCoreApplication::applicationDirPath();
pathInInstallDir = QString::fromAscii("%1/../%2").arg(applicationDirPath, path);
if (QFileInfo(pathInInstallDir).exists())
return pathInInstallDir;
#endif
#endif
return path;
}
QmlApplicationViewer::QmlApplicationViewer(QWidget *parent)
: QDeclarativeView(parent)
, d(new QmlApplicationViewerPrivate(this))
{
connect(engine(), SIGNAL(quit()), SLOT(close()));
setResizeMode(QDeclarativeView::SizeRootObjectToView);
// 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(d->view->engine());
#endif
#if !defined(NO_QMLOBSERVER)
new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view);
#endif
#endif
}
QmlApplicationViewer::QmlApplicationViewer(QDeclarativeView *view, QWidget *parent)
: QDeclarativeView(parent)
, d(new QmlApplicationViewerPrivate(view))
{
connect(view->engine(), SIGNAL(quit()), view, SLOT(close()));
view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
// 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(d->view->engine());
#endif
#if !defined(NO_QMLOBSERVER)
new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view);
#endif
#endif
}
QmlApplicationViewer::~QmlApplicationViewer()
{
delete d;
}
QmlApplicationViewer *QmlApplicationViewer::create()
{
#ifdef HARMATTAN_BOOSTER
return new QmlApplicationViewer(MDeclarativeCache::qDeclarativeView(), 0);
#else
return new QmlApplicationViewer();
#endif
}
void QmlApplicationViewer::setMainQmlFile(const QString &file)
{
d->mainQmlFile = d->adjustPath(file);
d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile));
}
void QmlApplicationViewer::addImportPath(const QString &path)
{
d->view->engine()->addImportPath(d->adjustPath(path));
}
Jani Honkonen
qmlcustomlegend: fix qt5 build
r2077 //void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
//{
//#if defined(Q_OS_SYMBIAN)
// // If the version of Qt on the device is < 4.7.2, that attribute won't work
// if (orientation != ScreenOrientationAuto) {
// const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
// if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
// qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
// return;
// }
// }
//#endif // Q_OS_SYMBIAN
// 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);
//}
Tero Ahola
Demo about creating a custom legend on QML
r2069
void QmlApplicationViewer::showExpanded()
{
#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
d->view->showFullScreen();
#elif defined(Q_WS_MAEMO_5)
d->view->showMaximized();
#else
d->view->show();
#endif
}
QApplication *createApplication(int &argc, char **argv)
{
#ifdef HARMATTAN_BOOSTER
return MDeclarativeCache::qApplication(argc, argv);
#else
return new QApplication(argc, argv);
#endif
}