AudioVolumeKeyEventOnSymbian: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
(Don't #include the module prefix)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Outdated|reason=The Symbian platform is no longer supported.}}
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
Register in C++
Register in C++


Line 6: Line 9:
<code>#include "qmlapplicationviewer.h"
<code>#include "qmlapplicationviewer.h"


#include <QtCore/QCoreApplication>
#include <QCoreApplication>
#include <QtCore/QDir>
#include <QDir>
#include <QtCore/QFileInfo>
#include <QFileInfo>
#include <QtDeclarative/QDeclarativeComponent>
#include <QDeclarativeComponent>
#include <QtDeclarative/QDeclarativeEngine>
#include <QDeclarativeEngine>
#include <QtDeclarative/QDeclarativeContext>
#include <QDeclarativeContext>


#if defined(QMLJSDEBUGGER)
#if defined(QMLJSDEBUGGER)
Line 17: Line 20:
#endif
#endif


#if defined(QMLJSDEBUGGER) &amp;&amp; !defined(NO_JSDEBUGGER)
#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
#include <jsdebuggeragent.h>
#include <jsdebuggeragent.h>
#endif
#endif
#if defined(QMLJSDEBUGGER) &amp;&amp; !defined(NO_QMLOBSERVER)
#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
#include <qdeclarativeviewobserver.h>
#include <qdeclarativeviewobserver.h>
#endif
#endif
Line 44: Line 47:
  QString mainQmlFile;
  QString mainQmlFile;
  friend class QmlApplicationViewer;
  friend class QmlApplicationViewer;
  static QString adjustPath(const QString &amp;path);
  static QString adjustPath(const QString &path);
};
};


QString QmlApplicationViewerPrivate::adjustPath(const QString &amp;path)
QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
{
{
#ifdef Q_OS_UNIX
#ifdef Q_OS_UNIX
Line 58: Line 61:
  + QLatin1String("/../") + path;
  + QLatin1String("/../") + path;
  if (pathInInstallDir.contains(QLatin1String("opt"))
  if (pathInInstallDir.contains(QLatin1String("opt"))
  &amp;&amp; pathInInstallDir.contains(QLatin1String("bin"))
  && pathInInstallDir.contains(QLatin1String("bin"))
  &amp;&amp; QFileInfo(pathInInstallDir).exists()) {
  && QFileInfo(pathInInstallDir).exists()) {
  return pathInInstallDir;
  return pathInInstallDir;
  }
  }
Line 73: Line 76:
  connect(engine(), SIGNAL (quit()), SLOT (close()));
  connect(engine(), SIGNAL (quit()), SLOT (close()));
  setResizeMode(QDeclarativeView::SizeRootObjectToView);
  setResizeMode(QDeclarativeView::SizeRootObjectToView);
#if defined(QMLJSDEBUGGER) &amp;&amp; !defined(NO_JSDEBUGGER)
#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
  new QmlJSDebugger::JSDebuggerAgent(engine());
  new QmlJSDebugger::JSDebuggerAgent(engine());
#endif
#endif
#if defined(QMLJSDEBUGGER) &amp;&amp; !defined(NO_QMLOBSERVER)
#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
  new QmlJSDebugger::QDeclarativeViewObserver(this, this);
  new QmlJSDebugger::QDeclarativeViewObserver(this, this);
#endif
#endif
Line 86: Line 89:
}
}


void QmlApplicationViewer::setMainQmlFile(const QString &amp;file)
void QmlApplicationViewer::setMainQmlFile(const QString &file)
{
{


Line 93: Line 96:
}
}


void QmlApplicationViewer::addImportPath(const QString &amp;path)
void QmlApplicationViewer::addImportPath(const QString &path)
{
{


Line 105: Line 108:
  if (orientation != ScreenOrientationAuto) {
  if (orientation != ScreenOrientationAuto) {
  const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
  const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
  if (v.count() == 3 &amp;&amp; (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
  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");
  qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
  return;
  return;

Latest revision as of 13:23, 27 April 2015

IMPORTANT: The content of this page is outdated. Reason: The Symbian platform is no longer supported.
If you have checked or updated this page and found the content to be suitable, please remove this notice.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Register in C++

qmlRegisterType<MediakeyCaptureItem>("Mediakey", 1, 0, "MediakeyCapture");

Example #include "qmlapplicationviewer.h"

  1. include <QCoreApplication>
  2. include <QDir>
  3. include <QFileInfo>
  4. include <QDeclarativeComponent>
  5. include <QDeclarativeEngine>
  6. include <QDeclarativeContext>
  1. if defined(QMLJSDEBUGGER)
  2. include <qt_private/qdeclarativedebughelper_p.h>
  3. endif
  1. if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
  2. include <jsdebuggeragent.h>
  3. endif
  4. if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
  5. include <qdeclarativeviewobserver.h>
  6. endif
  1. if defined(QMLJSDEBUGGER)

// Enable debugging before any QDeclarativeEngine is created struct QmlJsDebuggingEnabler {

QmlJsDebuggingEnabler()
{
QDeclarativeDebugHelper::enableDebugging();
}

};

// Execute code in constructor before first QDeclarativeEngine is instantiated static QmlJsDebuggingEnabler enableDebuggingHelper;

  1. endif // QMLJSDEBUGGER

class QmlApplicationViewerPrivate {

QString mainQmlFile;
friend class QmlApplicationViewer;
static QString adjustPath(const QString &path);

};

QString QmlApplicationViewerPrivate::adjustPath(const QString &path) {

  1. ifdef Q_OS_UNIX
  2. ifdef Q_OS_MAC
if (!QDir::isAbsolutePath(path))
return QCoreApplication::applicationDirPath()
+ QLatin1String("/../Resources/") + path;
  1. else
const QString pathInInstallDir = QCoreApplication::applicationDirPath()
+ QLatin1String("/../") + path;
if (pathInInstallDir.contains(QLatin1String("opt"))
&& pathInInstallDir.contains(QLatin1String("bin"))
&& QFileInfo(pathInInstallDir).exists()) {
return pathInInstallDir;
}
  1. endif
  2. endif
return path;

}

QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) :

QDeclarativeView(parent),
m_d(new QmlApplicationViewerPrivate)

{

connect(engine(), SIGNAL (quit()), SLOT (close()));
setResizeMode(QDeclarativeView::SizeRootObjectToView);
  1. if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
new QmlJSDebugger::JSDebuggerAgent(engine());
  1. endif
  2. if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
new QmlJSDebugger::QDeclarativeViewObserver(this, this);
  1. endif

}

QmlApplicationViewer::~QmlApplicationViewer() {

delete m_d;

}

void QmlApplicationViewer::setMainQmlFile(const QString &file) {

m_d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);

setSource(QUrl::fromLocalFile(m_d->mainQmlFile));

}

void QmlApplicationViewer::addImportPath(const QString &path) {

engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path)); }

void QmlApplicationViewer::setOrientation(ScreenOrientation orientation) {

  1. 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;
}
}
  1. endif // Q_OS_SYMBIAN

Qt::WidgetAttribute attribute;

switch (orientation) {
  1. 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;
  1. 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;
  1. endif // QT_VERSION < 0x040702
};
setAttribute(attribute, true);

}

void QmlApplicationViewer::showExpanded() {

  1. ifdef Q_OS_SYMBIAN
showFullScreen();
  1. elif defined(Q_WS_MAEMO_5)
showMaximized();
  1. else
show();
  1. endif