qtquick2applicationviewer.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // checksum 0xbbc 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. #include "qtquick2applicationviewer.h"
  11. #include <QtCore/QCoreApplication>
  12. #include <QtCore/QDir>
  13. #include <QtQml/QQmlEngine>
  14. class QtQuick2ApplicationViewerPrivate
  15. {
  16. QString mainQmlFile;
  17. friend class QtQuick2ApplicationViewer;
  18. static QString adjustPath(const QString &path);
  19. };
  20. QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path)
  21. {
  22. #if defined(Q_OS_MAC)
  23. if (!QDir::isAbsolutePath(path))
  24. return QString::fromLatin1("%1/../Resources/%2")
  25. .arg(QCoreApplication::applicationDirPath(), path);
  26. #elif defined(Q_OS_BLACKBERRY)
  27. if (!QDir::isAbsolutePath(path))
  28. return QString::fromLatin1("app/native/%1").arg(path);
  29. #elif !defined(Q_OS_ANDROID)
  30. QString pathInInstallDir =
  31. QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
  32. if (QFileInfo(pathInInstallDir).exists())
  33. return pathInInstallDir;
  34. pathInInstallDir =
  35. QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), path);
  36. if (QFileInfo(pathInInstallDir).exists())
  37. return pathInInstallDir;
  38. #elif defined(Q_OS_ANDROID_NO_SDK)
  39. return QLatin1String("/data/user/qt/") + path;
  40. #endif
  41. return path;
  42. }
  43. QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent)
  44. : QQuickView(parent)
  45. , d(new QtQuick2ApplicationViewerPrivate())
  46. {
  47. connect(engine(), SIGNAL(quit()), SLOT(close()));
  48. setResizeMode(QQuickView::SizeRootObjectToView);
  49. }
  50. QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer()
  51. {
  52. delete d;
  53. }
  54. void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file)
  55. {
  56. d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file);
  57. #if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK)
  58. setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile));
  59. #else
  60. setSource(QUrl::fromLocalFile(d->mainQmlFile));
  61. #endif
  62. }
  63. void QtQuick2ApplicationViewer::addImportPath(const QString &path)
  64. {
  65. engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path));
  66. }
  67. void QtQuick2ApplicationViewer::showExpanded()
  68. {
  69. #if defined(Q_WS_SIMULATOR) || defined(Q_OS_QNX)
  70. showFullScreen();
  71. #else
  72. show();
  73. #endif
  74. }