improved desktop UI
authorKate Alhola <kate@kate-alholas-macbook-pro.local>
Mon, 11 Jun 2012 07:49:23 +0000 (10:49 +0300)
committerKate Alhola <kate@kate-alholas-macbook-pro.local>
Mon, 11 Jun 2012 07:49:23 +0000 (10:49 +0300)
mardrone/qmlappviewer.cpp [new file with mode: 0644]
mardrone/qmlappviewer.h [new file with mode: 0644]

diff --git a/mardrone/qmlappviewer.cpp b/mardrone/qmlappviewer.cpp
new file mode 100644 (file)
index 0000000..2fb5bde
--- /dev/null
@@ -0,0 +1,43 @@
+#include "qmlappviewer.h"
+#include <QDebug>
+#include <QEvent>
+#include <QCloseEvent>
+
+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 (file)
index 0000000..57c5b77
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef QMLAPPVIEWER_H
+#define QMLAPPVIEWER_H
+
+#include <QDeclarativeView>
+
+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