summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Wildemann <gta04@metalstrolche.de>2017-03-20 00:34:16 +0100
committerStefan Wildemann <gta04@metalstrolche.de>2017-03-20 00:34:16 +0100
commita93bccb752772f5e7cdf851b65e68c8d79897b04 (patch)
treee135c7cdba4d6f464760e8e6ebc2e0327a58ed7a
parentfd54612e88fd966bceaff5c537b05be8b6ee08e1 (diff)
downloadnavit-a93bccb752772f5e7cdf851b65e68c8d79897b04.tar.gz
Add inital Quick component
Now this has it's own c++ Quick component included. Additionally the qml file gets embedded into the plugin.
-rw-r--r--navit/graphics/qt5/CMakeLists.txt12
-rw-r--r--navit/graphics/qt5/QNavitQuick.cpp35
-rw-r--r--navit/graphics/qt5/QNavitQuick.h29
-rw-r--r--navit/graphics/qt5/graphics_qt5.cpp5
-rw-r--r--navit/graphics/qt5/graphics_qt5.qml16
-rw-r--r--navit/graphics/qt5/graphics_qt5.qrc5
6 files changed, 84 insertions, 18 deletions
diff --git a/navit/graphics/qt5/CMakeLists.txt b/navit/graphics/qt5/CMakeLists.txt
index f62ec34cf..f3d05f0dd 100644
--- a/navit/graphics/qt5/CMakeLists.txt
+++ b/navit/graphics/qt5/CMakeLists.txt
@@ -2,6 +2,8 @@
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
+# Instruct CMake to build QRC if needed
+set(CMAKE_AUTORCC ON)
# collect additional source files in this variable
set (GRAPHICS_QT5_ADDITIONAL "")
@@ -13,22 +15,16 @@ set(QWIDGET 0)
# check if we have QML
if(USE_QML)
set(QML 1)
+ set(GRAPHICS_QT5_ADDITIONAL ${GRAPHICS_QT5_ADDITIONAL} "QNavitQuick.cpp" "graphics_qt5.qrc")
endif ()
#check if we have QWIDGET
if(USE_QWIDGET)
set(QWIDGET 1)
- set(GRAPHICS_QT5_ADDITIONAL "QNavitWidget.cpp")
+ set(GRAPHICS_QT5_ADDITIONAL ${GRAPHICS_QT5_ADDITIONAL} "QNavitWidget.cpp")
endif ()
module_add_library(graphics_qt5 graphics_qt5.cpp event_qt5.cpp ${GRAPHICS_QT5_ADDITIONAL})
# pass QML and QWIDGET preference to source
target_compile_definitions(graphics_qt5 PRIVATE USE_QML=${QML} USE_QWIDGET=${QWIDGET})
-# install qml files if QML is used
-if(USE_QML)
- install(FILES graphics_qt5.qml DESTINATION ${LIB_DIR}/navit/${graphics_qt5_TYPE}
- PERMISSIONS OWNER_READ OWNER_WRITE
- OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
- WORLD_READ WORLD_EXECUTE)
-endif ()
diff --git a/navit/graphics/qt5/QNavitQuick.cpp b/navit/graphics/qt5/QNavitQuick.cpp
new file mode 100644
index 000000000..39c61c7be
--- /dev/null
+++ b/navit/graphics/qt5/QNavitQuick.cpp
@@ -0,0 +1,35 @@
+#include "QNavitQuick.h"
+#include <QPainter>
+
+QNavitQuick::QNavitQuick(QQuickItem *parent)
+ : QQuickPaintedItem(parent)
+{
+}
+
+QString QNavitQuick::name() const
+{
+ return m_name;
+}
+
+void QNavitQuick::setName(const QString &name)
+{
+ m_name = name;
+}
+
+QColor QNavitQuick::color() const
+{
+ return m_color;
+}
+
+void QNavitQuick::setColor(const QColor &color)
+{
+ m_color = color;
+}
+
+void QNavitQuick::paint(QPainter *painter)
+{
+ QPen pen(m_color, 2);
+ painter->setPen(pen);
+ painter->setRenderHints(QPainter::Antialiasing, true);
+ painter->drawPie(boundingRect().adjusted(1, 1, -1, -1), 90 * 16, 290 * 16);
+}
diff --git a/navit/graphics/qt5/QNavitQuick.h b/navit/graphics/qt5/QNavitQuick.h
new file mode 100644
index 000000000..85eb65354
--- /dev/null
+++ b/navit/graphics/qt5/QNavitQuick.h
@@ -0,0 +1,29 @@
+#ifndef QNAVITQUICK_H
+#define QNAVITQUICK_H
+
+#include <QtQuick/QQuickPaintedItem>
+#include <QColor>
+
+class QNavitQuick : public QQuickPaintedItem
+{
+ Q_OBJECT
+ Q_PROPERTY(QString name READ name WRITE setName)
+ Q_PROPERTY(QColor color READ color WRITE setColor)
+
+public:
+ QNavitQuick(QQuickItem *parent = 0);
+
+ QString name() const;
+ void setName(const QString &name);
+
+ QColor color() const;
+ void setColor(const QColor &color);
+
+ void paint(QPainter *painter);
+
+private:
+ QString m_name;
+ QColor m_color;
+};
+
+#endif
diff --git a/navit/graphics/qt5/graphics_qt5.cpp b/navit/graphics/qt5/graphics_qt5.cpp
index 30aaaf0b9..a2e803aa0 100644
--- a/navit/graphics/qt5/graphics_qt5.cpp
+++ b/navit/graphics/qt5/graphics_qt5.cpp
@@ -47,6 +47,7 @@
#if USE_QML
#include <QQuickWindow>
#include <QQmlApplicationEngine>
+#include "QNavitQuick.h"
#endif
#if USE_QWIDGET
#include <QDesktopWidget>
@@ -836,8 +837,10 @@ graphics_qt5_new(struct navit *nav, struct graphics_methods *meth, struct attr *
graphics_priv->disable = 0;
#if USE_QML
graphics_priv->window = NULL;
+ qmlRegisterType<QNavitQuick>("com.navit.graphics_qml", 1, 0, "QNavitQuick");
gchar* url = g_strjoin(NULL,getenv("NAVIT_LIBDIR"),"/graphics/graphics_qt5.qml",NULL);
- QQmlApplicationEngine * engine = new QQmlApplicationEngine(url);
+// QQmlApplicationEngine * engine = new QQmlApplicationEngine(url);
+ QQmlApplicationEngine * engine = new QQmlApplicationEngine(QUrl("qrc:///graphics_qt5.qml"));
g_free (url);
if(engine != NULL)
{
diff --git a/navit/graphics/qt5/graphics_qt5.qml b/navit/graphics/qt5/graphics_qt5.qml
index c738d3d5e..305657d0e 100644
--- a/navit/graphics/qt5/graphics_qt5.qml
+++ b/navit/graphics/qt5/graphics_qt5.qml
@@ -1,15 +1,13 @@
+import com.navit.graphics_qml 1.0
import QtQuick 2.3
import QtQuick.Window 2.2
Window {
- Rectangle {
- width: 200
- height: 100
- color: "red"
-
- Text {
- anchors.centerIn: parent
- text: "Hello, World!"
- }
+ QNavitQuick {
+ id: aPieChart
+ anchors.centerIn: parent
+ width: 100; height: 100
+ name: "A simple pie chart"
+ color: "red"
}
}
diff --git a/navit/graphics/qt5/graphics_qt5.qrc b/navit/graphics/qt5/graphics_qt5.qrc
new file mode 100644
index 000000000..4c82492ee
--- /dev/null
+++ b/navit/graphics/qt5/graphics_qt5.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/">
+ <file>graphics_qt5.qml</file>
+ </qresource>
+</RCC>