AudioVolumeKeyEventOnSymbian

From Qt Wiki
Jump to: navigation, search
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