From: Kate Alhola Date: Mon, 11 Jun 2012 07:49:23 +0000 (+0300) Subject: improved desktop UI X-Git-Url: http://git.maemo.org/git/?p=mardrone;a=commitdiff_plain;h=0335187b959e7ae61e90dc67a934021615936d5f improved desktop UI --- diff --git a/mardrone/qmlappviewer.cpp b/mardrone/qmlappviewer.cpp new file mode 100644 index 0000000..2fb5bde --- /dev/null +++ b/mardrone/qmlappviewer.cpp @@ -0,0 +1,43 @@ +#include "qmlappviewer.h" +#include +#include +#include + +QmlAppViewer::QmlAppViewer(QWidget *parent) :QDeclarativeView(parent), + m_closePressed(false) +{ +} + +void QmlAppViewer::closeEvent(QCloseEvent *event) +{ + qDebug() << Q_FUNC_INFO << event->spontaneous(); + if (event->spontaneous() && m_closePressed) { + event->setAccepted(false); + m_closePressed = false; + return; + } + QDeclarativeView::closeEvent(event); +} + +void QmlAppViewer::keyPressEvent(QKeyEvent *event) +{ + qDebug() << Q_FUNC_INFO << event->key(); + if (event->key() == Qt::Key_Close) { + m_closePressed = true; + qDebug() << "Qt::Key_Close"; + } + QDeclarativeView::keyPressEvent(event); +} +void QmlAppViewer::keyReleaseEvent(QKeyEvent *event) +{ + qDebug() << Q_FUNC_INFO << event->key(); + if (event->key() == Qt::Key_Close) { + m_closePressed = true; + qDebug() << "Qt::Key_Close"; + } + if (event->key() == Qt::Key_MediaPrevious ) { + emit backKey(); + qDebug() << "Qt::Key_MediaPrevious"; + } + QDeclarativeView::keyReleaseEvent(event); +} diff --git a/mardrone/qmlappviewer.h b/mardrone/qmlappviewer.h new file mode 100644 index 0000000..57c5b77 --- /dev/null +++ b/mardrone/qmlappviewer.h @@ -0,0 +1,23 @@ +#ifndef QMLAPPVIEWER_H +#define QMLAPPVIEWER_H + +#include + +class QmlAppViewer : public QDeclarativeView +{ + Q_OBJECT + public: + explicit QmlAppViewer(QWidget *parent = 0); + signals: + void backKey(); + + protected: + void closeEvent(QCloseEvent *); + void keyPressEvent(QKeyEvent *); + void keyReleaseEvent(QKeyEvent *event); + + private: + bool m_closePressed; +}; + +#endif // QMLAPPVIEWER_H