From c9742f9962a98e6d5dffdec98fc34dadfe2e6e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20V=2E=20Solbr=C3=A5?= Date: Fri, 23 Jun 2017 12:57:08 +0200 Subject: [PATCH 1/2] fixed some mac buggerinos --- neuronify.pro | 2 +- qml/SoundBank.qml | 2 +- qml/controls/BoundSlider.qml | 2 +- qml/generators/ACClamp.qml | 2 +- qml/generators/CurrentClamp.qml | 2 +- qml/hud/ConnectionMenu.qml | 2 +- qml/hud/CreationMenu.qml | 2 +- qml/hud/MeterControls.qml | 2 +- qml/hud/PlaybackControls.qml | 2 +- qml/hud/SensorControls.qml | 2 +- qml/menus/mainmenu/MainMenu.qml | 2 +- qml/meters/Loudspeaker.qml | 2 +- qml/neurons/AdaptationNeuron.qml | 2 +- qml/neurons/Neuron.qml | 2 +- qml/neurons/NeuronControls.qml | 2 +- qml/sensors/Retina.qml | 2 +- qml/style/Style.qml | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/neuronify.pro b/neuronify.pro index 4eae9b11..0e5ee010 100644 --- a/neuronify.pro +++ b/neuronify.pro @@ -6,7 +6,7 @@ android { TARGET = Neuronify } -QT += qml quick widgets multimedia multimediawidgets charts sql +QT += qml quick widgets multimedia multimediawidgets charts sql svg xml gui core CONFIG += c++11 qtquickcompiler diff --git a/qml/SoundBank.qml b/qml/SoundBank.qml index eca9169b..f7a9e264 100644 --- a/qml/SoundBank.qml +++ b/qml/SoundBank.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.1 import QtQuick.Layouts 1.1 import QtQuick.Dialogs 1.0 import QtQuick.Window 2.1 diff --git a/qml/controls/BoundSlider.qml b/qml/controls/BoundSlider.qml index 014da12e..196cc9b6 100644 --- a/qml/controls/BoundSlider.qml +++ b/qml/controls/BoundSlider.qml @@ -1,5 +1,5 @@ import QtQuick 2.6 -import QtQuick.Controls 1.0 +import QtQuick.Controls 2.1 import QtQml 2.2 import QtGraphicalEffects 1.0 diff --git a/qml/generators/ACClamp.qml b/qml/generators/ACClamp.qml index 5f7661ce..78d9bf9c 100644 --- a/qml/generators/ACClamp.qml +++ b/qml/generators/ACClamp.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.0 +import QtQuick.Controls 2.1 import Neuronify 1.0 diff --git a/qml/generators/CurrentClamp.qml b/qml/generators/CurrentClamp.qml index 8af5c9e7..df6446ed 100644 --- a/qml/generators/CurrentClamp.qml +++ b/qml/generators/CurrentClamp.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.0 +import QtQuick.Controls 2.1 import Neuronify 1.0 diff --git a/qml/hud/ConnectionMenu.qml b/qml/hud/ConnectionMenu.qml index f9b61983..58bbdd2c 100644 --- a/qml/hud/ConnectionMenu.qml +++ b/qml/hud/ConnectionMenu.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.1 import QtQuick.Layouts 1.1 import QtQuick.Dialogs 1.0 import QtQuick.Window 2.1 diff --git a/qml/hud/CreationMenu.qml b/qml/hud/CreationMenu.qml index 6fc883f2..a1a08a21 100644 --- a/qml/hud/CreationMenu.qml +++ b/qml/hud/CreationMenu.qml @@ -1,6 +1,6 @@ import QtQuick 2.0 import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.1 import QtGraphicalEffects 1.0 import "../neurons" diff --git a/qml/hud/MeterControls.qml b/qml/hud/MeterControls.qml index e97e24bb..e0289f8d 100644 --- a/qml/hud/MeterControls.qml +++ b/qml/hud/MeterControls.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.1 import QtQuick.Layouts 1.1 import Neuronify 1.0 diff --git a/qml/hud/PlaybackControls.qml b/qml/hud/PlaybackControls.qml index dd38666f..c44423af 100644 --- a/qml/hud/PlaybackControls.qml +++ b/qml/hud/PlaybackControls.qml @@ -1,6 +1,6 @@ import QtQuick 2.0 import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.2 +import QtQuick.Controls 2.1 import "qrc:/qml" import "qrc:/qml/style" diff --git a/qml/hud/SensorControls.qml b/qml/hud/SensorControls.qml index d0deb5ff..dfb38fda 100644 --- a/qml/hud/SensorControls.qml +++ b/qml/hud/SensorControls.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.1 import QtQuick.Layouts 1.1 import ".." import "../controls" diff --git a/qml/menus/mainmenu/MainMenu.qml b/qml/menus/mainmenu/MainMenu.qml index 7914a2cf..30c3918e 100644 --- a/qml/menus/mainmenu/MainMenu.qml +++ b/qml/menus/mainmenu/MainMenu.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.1 import QtQuick.Layouts 1.1 import QtGraphicalEffects 1.0 diff --git a/qml/meters/Loudspeaker.qml b/qml/meters/Loudspeaker.qml index 6b2fa613..092916bc 100644 --- a/qml/meters/Loudspeaker.qml +++ b/qml/meters/Loudspeaker.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.0 +import QtQuick.Controls 2.0 import QtQuick.Controls.Styles 1.0 diff --git a/qml/neurons/AdaptationNeuron.qml b/qml/neurons/AdaptationNeuron.qml index bec7fa87..b0983214 100644 --- a/qml/neurons/AdaptationNeuron.qml +++ b/qml/neurons/AdaptationNeuron.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.0 +import QtQuick.Controls 2.0 import Neuronify 1.0 diff --git a/qml/neurons/Neuron.qml b/qml/neurons/Neuron.qml index 975a586c..6bd07dd5 100644 --- a/qml/neurons/Neuron.qml +++ b/qml/neurons/Neuron.qml @@ -5,7 +5,7 @@ import "../hud" import "../paths" import Neuronify 1.0 -import QtQuick.Controls 1.3 +import QtQuick.Controls 2.1 import QtQuick.Particles 2.0 import QtGraphicalEffects 1.0 diff --git a/qml/neurons/NeuronControls.qml b/qml/neurons/NeuronControls.qml index 8d53726c..c1bc496b 100644 --- a/qml/neurons/NeuronControls.qml +++ b/qml/neurons/NeuronControls.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.1 import QtQuick.Layouts 1.1 import QtQuick.Controls.Styles 1.1 diff --git a/qml/sensors/Retina.qml b/qml/sensors/Retina.qml index 6fad428e..944fc9ff 100644 --- a/qml/sensors/Retina.qml +++ b/qml/sensors/Retina.qml @@ -1,5 +1,5 @@ import QtQuick 2.6 -import QtQuick.Controls 1.3 +import QtQuick.Controls 2.1 import QtMultimedia 5.4 import QtQuick.Window 2.0 diff --git a/qml/style/Style.qml b/qml/style/Style.qml index 382d88ee..691217ba 100644 --- a/qml/style/Style.qml +++ b/qml/style/Style.qml @@ -1,6 +1,6 @@ pragma Singleton import QtQuick 2.6 -import QtQuick.Controls 1.0 +import QtQuick.Controls 2.1 Item { id: root From 19407a8736ce06900ebba67abf8a5884a0c779c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20V=2E=20Solbr=C3=A5?= Date: Fri, 23 Jun 2017 12:59:27 +0200 Subject: [PATCH 2/2] merge conflicterino --- .travis/Dockerfile | 5 +++ src/core/graphengine.cpp | 70 ++++++++++++++++++++++++++++++++++------ src/core/graphengine.h | 9 ++++-- 3 files changed, 72 insertions(+), 12 deletions(-) diff --git a/.travis/Dockerfile b/.travis/Dockerfile index 5bbd26bb..d65333a4 100644 --- a/.travis/Dockerfile +++ b/.travis/Dockerfile @@ -5,6 +5,11 @@ WORKDIR /app RUN apt-get -qq update RUN apt-get install -qq sudo apt-utils +RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen +ENV LC_ALL en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en + RUN sudo apt-get update -qq RUN sudo apt-get install -qq curl p7zip-full git build-essential python snapcraft qt5-default libpulse-dev ADD qt5-ubuntu.sh /qt5-ubuntu.sh diff --git a/src/core/graphengine.cpp b/src/core/graphengine.cpp index 072e23ac..5412803e 100644 --- a/src/core/graphengine.cpp +++ b/src/core/graphengine.cpp @@ -29,14 +29,61 @@ GraphEngine::~GraphEngine() } +class NodeWrapper { +public: + static void append(QQmlListProperty* list, NodeBase* node) { + reinterpret_cast(list->data)->m_nodes.append(node); + } + + static void clear(QQmlListProperty* list) { + reinterpret_cast(list->data)->m_nodes.clear(); + } + + static NodeBase* at(QQmlListProperty* list, int index) { + return reinterpret_cast(list->data)->m_nodes.at(index); + } + + static int count(QQmlListProperty* list) { + return reinterpret_cast(list->data)->m_nodes.count(); + } +}; + QQmlListProperty GraphEngine::nodes() { - return QQmlListProperty(this, m_nodes); + + return QQmlListProperty(this, this, + &NodeWrapper::append, + &NodeWrapper::count, + &NodeWrapper::at, + &NodeWrapper::clear); } +class EdgeWrapper { +public: + static void append(QQmlListProperty* list, EdgeBase* edge) { + reinterpret_cast(list->data)->m_edges.append(edge); + } + + static void clear(QQmlListProperty* list) { + reinterpret_cast(list->data)->m_edges.clear(); + } + + static EdgeBase* at(QQmlListProperty* list, int index) { + return reinterpret_cast(list->data)->m_edges.at(index); + } + + static int count(QQmlListProperty* list) { + return reinterpret_cast(list->data)->m_edges.count(); + } +}; + QQmlListProperty GraphEngine::edges() { - return QQmlListProperty(this, m_edges); + return QQmlListProperty(this, this, + &EdgeWrapper::append, + &EdgeWrapper::count, + &EdgeWrapper::at, + &EdgeWrapper::clear); } int GraphEngine::nodeIndex(NodeBase *node) const @@ -66,8 +113,6 @@ void GraphEngine::addEdge(EdgeBase *edge) } m_edges.append(edge); - - } void GraphEngine::removeNode(NodeBase *node) @@ -82,7 +127,7 @@ void GraphEngine::removeNode(NodeBase *node) for(EdgeBase *edge : toDelete) { removeEdge(edge); } - node->deleteLater(); + node->deleteLater(); // TODO memory handling here is bad: What if node is part of two graphs? Should not happen, but you never know. } void GraphEngine::removeEdge(EdgeBase *edge) @@ -113,23 +158,23 @@ void GraphEngine::removeEdge(EdgeBase *edge) edge->deleteLater(); } -void GraphEngine::step(double dt) +void step(const QVector &nodes, const QVector &edges, double dt) { // step all nodes - for(NodeBase* node : m_nodes) { + for(NodeBase* node : nodes) { if(node->engine()) { node->engine()->step(dt, true); } } - for(EdgeBase* edge : m_edges) { + for(EdgeBase* edge : edges) { if(edge->engine()){ edge->engine()->step(dt, true); } } //communicate events between nodes - for(EdgeBase* edge : m_edges) { + for(EdgeBase* edge : edges) { if(!(edge->itemA()) || !(edge->itemB())) { continue; } @@ -164,10 +209,15 @@ void GraphEngine::step(double dt) //finalize step // TODO: remove this if not needed - for(NodeBase* node : m_nodes) { + for(NodeBase* node : nodes) { if(node->engine()) { node->engine()->finalizeStep(dt); } } } +void GraphEngine::step(double dt) +{ + ::step(m_nodes, m_edges, dt); +} + diff --git a/src/core/graphengine.h b/src/core/graphengine.h index 247580a5..905c04d7 100644 --- a/src/core/graphengine.h +++ b/src/core/graphengine.h @@ -29,8 +29,13 @@ public slots: void removeEdge(EdgeBase *edge); private: - QList m_nodes; - QList m_edges; + QVector m_nodes; + QVector m_edges; + + friend class EdgeWrapper; + friend class NodeWrapper; }; +void step(const QVector &nodes, const QVector &edges, double dt); + #endif // GRAPHENGINE_H