Improve initial setup
This commit is contained in:
parent
5b26ed591b
commit
e44d5c0fd8
@ -243,7 +243,7 @@ void JsonRpcClient::sendRequest(const QVariantMap &request)
|
||||
{
|
||||
QVariantMap newRequest = request;
|
||||
newRequest.insert("token", m_token);
|
||||
qDebug() << "Sending request" << qUtf8Printable(QJsonDocument::fromVariant(newRequest).toJson());
|
||||
// qDebug() << "Sending request" << qUtf8Printable(QJsonDocument::fromVariant(newRequest).toJson());
|
||||
m_connection->sendData(QJsonDocument::fromVariant(newRequest).toJson());
|
||||
}
|
||||
|
||||
@ -278,7 +278,7 @@ void JsonRpcClient::dataReceived(const QByteArray &data)
|
||||
// qWarning() << "Could not parse json data from mea" << data << error.errorString();
|
||||
return;
|
||||
}
|
||||
qDebug() << "received response" << m_receiveBuffer.left(splitIndex);
|
||||
// qDebug() << "received response" << m_receiveBuffer.left(splitIndex);
|
||||
m_receiveBuffer = m_receiveBuffer.right(m_receiveBuffer.length() - splitIndex - 1);
|
||||
if (!m_receiveBuffer.isEmpty()) {
|
||||
staticMetaObject.invokeMethod(this, "dataReceived", Qt::QueuedConnection, Q_ARG(QByteArray, QByteArray()));
|
||||
|
||||
@ -45,7 +45,7 @@ BluetoothDeviceInfos *BluetoothDiscovery::deviceInfos()
|
||||
return m_deviceInfos;
|
||||
}
|
||||
|
||||
void BluetoothDiscovery::setDiscovering(const bool &discovering)
|
||||
void BluetoothDiscovery::setDiscovering(bool discovering)
|
||||
{
|
||||
m_discovering = discovering;
|
||||
emit discoveringChanged();
|
||||
|
||||
@ -47,7 +47,7 @@ private:
|
||||
|
||||
bool m_discovering;
|
||||
|
||||
void setDiscovering(const bool &discovering);
|
||||
void setDiscovering(bool discovering);
|
||||
|
||||
signals:
|
||||
void discoveringChanged();
|
||||
|
||||
@ -45,6 +45,7 @@ void WirelessAccesspoints::setWirelessAccessPoints(QList<WirelessAccessPoint *>
|
||||
m_wirelessAccessPoints = wirelessAccessPoints;
|
||||
|
||||
endResetModel();
|
||||
emit countChanged();
|
||||
}
|
||||
|
||||
int WirelessAccesspoints::rowCount(const QModelIndex &parent) const
|
||||
@ -95,6 +96,7 @@ void WirelessAccesspoints::clearModel()
|
||||
qDeleteAll(m_wirelessAccessPoints);
|
||||
m_wirelessAccessPoints.clear();
|
||||
endResetModel();
|
||||
emit countChanged();
|
||||
}
|
||||
|
||||
void WirelessAccesspoints::setSelectedNetwork(const QString &ssid, const QString &macAdderss)
|
||||
@ -117,6 +119,7 @@ void WirelessAccesspoints::setSelectedNetwork(const QString &ssid, const QString
|
||||
m_wirelessAccessPoints = wirelessAccessPoints;
|
||||
|
||||
endResetModel();
|
||||
emit countChanged();
|
||||
}
|
||||
|
||||
bool WirelessAccesspoints::signalStrengthLessThan(const WirelessAccessPoint *a, const WirelessAccessPoint *b)
|
||||
|
||||
@ -31,6 +31,7 @@
|
||||
class WirelessAccesspoints : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(int count READ rowCount NOTIFY countChanged)
|
||||
public:
|
||||
enum BluetoothDeviceInfoRole {
|
||||
WirelessAccesspointRoleSsid = Qt::DisplayRole,
|
||||
@ -57,6 +58,9 @@ public:
|
||||
|
||||
static bool signalStrengthLessThan(const WirelessAccessPoint *a, const WirelessAccessPoint *b);
|
||||
|
||||
signals:
|
||||
void countChanged();
|
||||
|
||||
protected:
|
||||
QHash<int, QByteArray> roleNames() const;
|
||||
|
||||
|
||||
@ -137,7 +137,6 @@ void WirelessSetupManager::loadNetworks()
|
||||
|
||||
m_readingResponse = true;
|
||||
m_inputDataStream.clear();
|
||||
m_accessPoints->clearModel();
|
||||
|
||||
setStatusText("WifiSetupManager: Loading wifi network list...");
|
||||
setWorking(true);
|
||||
@ -602,12 +601,18 @@ void WirelessSetupManager::onConnectedChanged()
|
||||
if (!connected()) {
|
||||
// Clean up
|
||||
qDebug() << "WifiSetupManager: Clean up services";
|
||||
m_deviceInformationService->deleteLater();
|
||||
m_netwokService->deleteLater();
|
||||
m_wifiService->deleteLater();
|
||||
|
||||
if (m_systemService)
|
||||
if (m_deviceInformationService) {
|
||||
m_deviceInformationService->deleteLater();
|
||||
}
|
||||
if (m_netwokService) {
|
||||
m_netwokService->deleteLater();
|
||||
}
|
||||
if (m_wifiService) {
|
||||
m_wifiService->deleteLater();
|
||||
}
|
||||
if (m_systemService) {
|
||||
m_systemService->deleteLater();
|
||||
}
|
||||
|
||||
m_deviceInformationService = nullptr;
|
||||
m_netwokService = nullptr;
|
||||
|
||||
@ -205,5 +205,9 @@
|
||||
<file>ui/system/AboutNymeaPage.qml</file>
|
||||
<file>ui/images/logs.svg</file>
|
||||
<file>ui/images/plugin.svg</file>
|
||||
<file>ui/images/nymea-box-setup.svg</file>
|
||||
<file>ui/images/rpi-setup.svg</file>
|
||||
<file>ui/images/eye.svg</file>
|
||||
<file>ui/images/private-browsing.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@ -11,24 +11,53 @@ Page {
|
||||
text: qsTr("Bluetooth discovery")
|
||||
onBackPressed: pageStack.pop()
|
||||
|
||||
HeaderButton {
|
||||
imageSource: Qt.resolvedUrl("images/refresh.svg")
|
||||
onClicked: Engine.bluetoothDiscovery.start()
|
||||
// HeaderButton {
|
||||
// imageSource: Qt.resolvedUrl("images/refresh.svg")
|
||||
// onClicked: Engine.bluetoothDiscovery.start()
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
property bool shouldDiscover: true
|
||||
|
||||
Component.onCompleted: Engine.bluetoothDiscovery.start()
|
||||
Connections {
|
||||
target: Engine.bluetoothDiscovery
|
||||
onDiscoveringChanged: {
|
||||
print("BT discovery changed:", Engine.bluetoothDiscovery.discovering, shouldDiscover)
|
||||
if (!Engine.bluetoothDiscovery.discovering && shouldDiscover) {
|
||||
Engine.bluetoothDiscovery.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: Engine.bluetoothDiscovery.start()
|
||||
function setupDevice(name, btAddress) {
|
||||
shouldDiscover = false;
|
||||
Engine.bluetoothDiscovery.stop()
|
||||
pageStack.push(Qt.resolvedUrl("BluetoothLoadingPage.qml"), { name: name, address: btAddress } )
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
spacing: app.margins
|
||||
|
||||
BusyIndicator {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
running: Engine.bluetoothDiscovery.discovering
|
||||
RowLayout {
|
||||
spacing: app.margins
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.topMargin: app.margins
|
||||
Layout.rightMargin: app.rightMargin
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Searching for %1 boxes via Bluetooth.").arg(app.systemName)
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
BusyIndicator {
|
||||
running: Engine.bluetoothDiscovery.discovering
|
||||
}
|
||||
}
|
||||
|
||||
ThinDivider { }
|
||||
ThinDivider {}
|
||||
|
||||
ListView {
|
||||
Layout.fillWidth: true
|
||||
@ -37,42 +66,106 @@ Page {
|
||||
model: Engine.bluetoothDiscovery.deviceInfos
|
||||
clip: true
|
||||
|
||||
delegate: ItemDelegate {
|
||||
delegate: MeaListItemDelegate {
|
||||
width: parent.width
|
||||
height: app.delegateHeight
|
||||
|
||||
RowLayout {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
Layout.preferredWidth: height
|
||||
ColorIcon {
|
||||
id: image
|
||||
name: Qt.resolvedUrl("images/bluetooth.svg")
|
||||
anchors.fill: parent
|
||||
anchors.margins: app.margins / 2
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
anchors.margins: app.margins
|
||||
Label {
|
||||
text: model.name
|
||||
}
|
||||
Label {
|
||||
text: model.address
|
||||
font.pixelSize: app.smallFont
|
||||
}
|
||||
}
|
||||
}
|
||||
iconName: Qt.resolvedUrl("images/bluetooth.svg")
|
||||
text: model.name
|
||||
subText: model.address
|
||||
|
||||
onClicked: {
|
||||
print("Start bluetooth connection to", model.name, " --> ", model.address)
|
||||
Engine.bluetoothDiscovery.stop()
|
||||
pageStack.push(Qt.resolvedUrl("BluetoothLoadingPage.qml"), { name: model.name, address: model.address } )
|
||||
root.setupDevice(model.name, model.address)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ThinDivider {}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
Layout.bottomMargin: app.margins
|
||||
spacing: app.margins
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Troubles finding your box? Try this!")
|
||||
}
|
||||
Button {
|
||||
text: qsTr("Help")
|
||||
onClicked: pageStack.push(helpPageComponent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: helpPageComponent
|
||||
Page {
|
||||
id: helpPage
|
||||
header: GuhHeader {
|
||||
text: qsTr("Setup help")
|
||||
onBackPressed: pageStack.pop()
|
||||
}
|
||||
|
||||
Flickable {
|
||||
anchors.fill: parent
|
||||
contentHeight: helpColumn.implicitHeight
|
||||
|
||||
ColumnLayout {
|
||||
id: helpColumn
|
||||
width: parent.width
|
||||
spacing: app.margins
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
Layout.topMargin: app.margins
|
||||
wrapMode: Text.WordWrap
|
||||
font.bold: true
|
||||
text: "Raspberry Pi™"
|
||||
}
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("After having installed the nymea community image to your Raspberry Pi, all you need to do is to plug it into a power socket. Note that the Wireless setup will only be available if the Raspberry Pi is not connected to a wired network.")
|
||||
}
|
||||
Image {
|
||||
Layout.preferredWidth: app.iconSize * 8
|
||||
Layout.preferredHeight: width * 540 / 800
|
||||
sourceSize.width: 800
|
||||
sourceSize.height: 540
|
||||
fillMode: Image.PreserveAspectFit
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
source: "images/rpi-setup.svg"
|
||||
}
|
||||
ThinDivider {}
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
wrapMode: Text.WordWrap
|
||||
font.bold: true
|
||||
text: "%1 box".arg(systemName)
|
||||
}
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("If you have a %1 box, plug it into a power socket and wait for it to be booted. Once the LED pulses slowly, press the button for 3 seconds until the LED changes.").arg(app.systemName)
|
||||
}
|
||||
Image {
|
||||
Layout.preferredWidth: app.iconSize * 5
|
||||
Layout.preferredHeight: width
|
||||
Layout.bottomMargin: app.margins
|
||||
sourceSize.width: width
|
||||
sourceSize.height: width
|
||||
fillMode: Image.PreserveAspectFit
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
source: "images/nymea-box-setup.svg"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -70,6 +70,15 @@ Page {
|
||||
onTriggered: pageStack.push(Qt.resolvedUrl("BluetoothDiscoveryPage.qml"))
|
||||
}
|
||||
|
||||
IconMenuItem {
|
||||
iconSource: "../images/private-browsing.svg"
|
||||
text: qsTr("Demo mode")
|
||||
onTriggered: {
|
||||
pageStack.push(connectingPage)
|
||||
Engine.connection.connect("nymea://83.169.2.242:2222")
|
||||
}
|
||||
}
|
||||
|
||||
MenuSeparator {}
|
||||
|
||||
IconMenuItem {
|
||||
@ -85,7 +94,9 @@ Page {
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.margins: app.margins
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
Layout.topMargin: app.margins
|
||||
spacing: app.margins
|
||||
|
||||
Label {
|
||||
@ -105,11 +116,7 @@ Page {
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 1
|
||||
color: Material.accent
|
||||
}
|
||||
ThinDivider {}
|
||||
|
||||
ListView {
|
||||
Layout.fillWidth: true
|
||||
@ -210,15 +217,42 @@ Page {
|
||||
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
ThinDivider {}
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 1
|
||||
color: Material.accent
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
wrapMode: Text.WordWrap
|
||||
visible: discovery.discoveryModel.count === 0
|
||||
text: qsTr("Do you have a %1 box but it's not connected to your network yet? Use the wireless setup to connect it!").arg(app.systemName)
|
||||
}
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
visible: discovery.discoveryModel.count === 0
|
||||
text: qsTr("Start wireless setup")
|
||||
onClicked: pageStack.push(Qt.resolvedUrl("BluetoothDiscoveryPage.qml"))
|
||||
}
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
Layout.bottomMargin: app.margins
|
||||
visible: discovery.discoveryModel.count === 0
|
||||
text: qsTr("Demo mode (online)")
|
||||
onClicked: {
|
||||
pageStack.push(connectingPage)
|
||||
Engine.connection.connect("nymea://83.169.2.242:2222")
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.margins: app.margins
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
Layout.bottomMargin: app.margins
|
||||
visible: root.haveHosts
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
|
||||
@ -10,6 +10,11 @@ Page {
|
||||
header: GuhHeader {
|
||||
text: qsTr("Configure Things")
|
||||
onBackPressed: pageStack.pop()
|
||||
|
||||
HeaderButton {
|
||||
imageSource: "../images/add.svg"
|
||||
onClicked: pageStack.push(Qt.resolvedUrl("NewDeviceWizard.qml"))
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
@ -18,9 +23,52 @@ Page {
|
||||
delegate: ThingDelegate {
|
||||
interfaces:model.interfaces
|
||||
name: model.name
|
||||
canDelete: true
|
||||
onClicked: {
|
||||
pageStack.push(Qt.resolvedUrl("devicepages/ConfigureThingPage.qml"), {device: Engine.deviceManager.devices.get(index)})
|
||||
}
|
||||
onDeleteClicked: {
|
||||
Engine.deviceManager.removeDevice(Engine.deviceManager.devices.get(index).id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors { left: parent.left; right: parent.right; margins: app.margins }
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
spacing: app.margins * 2
|
||||
visible: Engine.deviceManager.devices.count === 0 && !Engine.deviceManager.fetchingData
|
||||
Label {
|
||||
text: qsTr("There are no things set up yet.")
|
||||
font.pixelSize: app.largeFont
|
||||
Layout.fillWidth: true
|
||||
wrapMode: Text.WordWrap
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
color: app.guhAccent
|
||||
}
|
||||
Label {
|
||||
text: qsTr("In order for your %1 box to be useful, go ahead and add some things.").arg(app.systemName)
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 400
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
wrapMode: Text.WordWrap
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
Image {
|
||||
source: "../guh-logo.svg"
|
||||
Layout.preferredWidth: app.iconSize * 5
|
||||
Layout.preferredHeight: width
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
sourceSize.width: app.iconSize * 5
|
||||
sourceSize.height: app.iconSize * 5
|
||||
}
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 400
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
text: qsTr("Add a thing")
|
||||
onClicked: pageStack.push(Qt.resolvedUrl("NewDeviceWizard.qml"))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -13,22 +13,26 @@ Page {
|
||||
HeaderButton {
|
||||
imageSource: Qt.resolvedUrl("images/add.svg")
|
||||
onClicked: {
|
||||
d.editRulePage = pageStack.push(Qt.resolvedUrl("magic/EditRulePage.qml"), {rule: Engine.ruleManager.createNewRule() });
|
||||
d.editRulePage.StackView.onRemoved.connect(function() {
|
||||
d.editRulePage.rule.destroy()
|
||||
d.editRulePage = null;
|
||||
})
|
||||
d.editRulePage.onAccept.connect(function() {
|
||||
d.editRulePage.busy = true;
|
||||
Engine.ruleManager.addRule(d.editRulePage.rule);
|
||||
})
|
||||
d.editRulePage.onCancel.connect(function() {
|
||||
pageStack.pop();
|
||||
})
|
||||
addRule()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function addRule() {
|
||||
d.editRulePage = pageStack.push(Qt.resolvedUrl("magic/EditRulePage.qml"), {rule: Engine.ruleManager.createNewRule() });
|
||||
d.editRulePage.StackView.onRemoved.connect(function() {
|
||||
d.editRulePage.rule.destroy()
|
||||
d.editRulePage = null;
|
||||
})
|
||||
d.editRulePage.onAccept.connect(function() {
|
||||
d.editRulePage.busy = true;
|
||||
Engine.ruleManager.addRule(d.editRulePage.rule);
|
||||
})
|
||||
d.editRulePage.onCancel.connect(function() {
|
||||
pageStack.pop();
|
||||
})
|
||||
}
|
||||
|
||||
QtObject {
|
||||
id: d
|
||||
property var editRulePage: null
|
||||
@ -88,6 +92,39 @@ Page {
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors { left: parent.left; right: parent.right; margins: app.margins }
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
spacing: app.margins * 2
|
||||
visible: Engine.ruleManager.rules.count === 0
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
text: qsTr("There is no magic set up yet.")
|
||||
wrapMode: Text.WordWrap
|
||||
color: app.guhAccent
|
||||
font.pixelSize: app.largeFont
|
||||
}
|
||||
Label {
|
||||
text: qsTr("Add some using the wizard stick!")
|
||||
Layout.fillWidth: true
|
||||
wrapMode: Text.WordWrap
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
AbstractButton {
|
||||
Layout.preferredHeight: app.iconSize * 4
|
||||
Layout.preferredWidth: height
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
|
||||
ColorIcon {
|
||||
anchors.fill: parent
|
||||
name: "../images/magic.svg"
|
||||
}
|
||||
|
||||
onClicked: addRule()
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: errorDialog
|
||||
ErrorDialog {}
|
||||
|
||||
@ -44,12 +44,7 @@ Page {
|
||||
text: qsTr("Configure things")
|
||||
onTriggered: pageStack.push(Qt.resolvedUrl("EditDevicesPage.qml"))
|
||||
}
|
||||
IconMenuItem {
|
||||
iconSource: "../images/add.svg"
|
||||
text: qsTr("Add a new thing")
|
||||
onTriggered: pageStack.push(Qt.resolvedUrl("NewDeviceWizard.qml"))
|
||||
}
|
||||
MenuSeparator {}
|
||||
// MenuSeparator {}
|
||||
IconMenuItem {
|
||||
iconSource: "../images/magic.svg"
|
||||
text: qsTr("Magic")
|
||||
@ -128,8 +123,9 @@ Page {
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors { left: parent.left; right: parent.right; top: parent.top; margins: app.margins }
|
||||
spacing: app.margins
|
||||
anchors { left: parent.left; right: parent.right; margins: app.margins }
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
spacing: app.margins * 2
|
||||
visible: Engine.deviceManager.devices.count === 0 && !Engine.deviceManager.fetchingData
|
||||
Label {
|
||||
text: qsTr("Welcome to %1!").arg(app.systemName)
|
||||
@ -140,11 +136,28 @@ Page {
|
||||
color: app.guhAccent
|
||||
}
|
||||
Label {
|
||||
text: qsTr("There are no things set up yet. You can start with adding your things by using the menu on the upper left and selecting \"Add a new thing\".")
|
||||
text: qsTr("There are no things set up yet. In order for your %1 box to be useful, go ahead and add some things.").arg(app.systemName)
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 400
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
wrapMode: Text.WordWrap
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
Image {
|
||||
source: "../guh-logo.svg"
|
||||
Layout.preferredWidth: app.iconSize * 5
|
||||
Layout.preferredHeight: width
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
sourceSize.width: app.iconSize * 5
|
||||
sourceSize.height: app.iconSize * 5
|
||||
}
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 400
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
text: qsTr("Add a thing")
|
||||
onClicked: pageStack.push(Qt.resolvedUrl("NewDeviceWizard.qml"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ ApplicationWindow {
|
||||
visible: true
|
||||
width: 360
|
||||
height: 580
|
||||
visibility: settings.viewMode
|
||||
visibility: ApplicationWindow.Maximized
|
||||
font: Qt.application.font
|
||||
title: appName
|
||||
|
||||
@ -26,7 +26,7 @@ ApplicationWindow {
|
||||
|
||||
property var settings: Settings {
|
||||
property string lastConnectedHost: ""
|
||||
property int viewMode: ApplicationWindow.Maximized
|
||||
property alias viewMode: app.visibility
|
||||
property bool returnToHome: false
|
||||
property bool darkTheme: false
|
||||
property string graphStyle: "bars"
|
||||
|
||||
@ -72,20 +72,9 @@ Page {
|
||||
model: VendorsProxy {
|
||||
vendors: Engine.deviceManager.vendors
|
||||
}
|
||||
delegate: ItemDelegate {
|
||||
delegate: MeaListItemDelegate {
|
||||
width: parent.width
|
||||
height: app.delegateHeight
|
||||
contentItem: RowLayout {
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: model.displayName
|
||||
}
|
||||
Image {
|
||||
source: "images/next.svg"
|
||||
Layout.preferredHeight: parent.height
|
||||
Layout.preferredWidth: height
|
||||
}
|
||||
}
|
||||
text: model.displayName
|
||||
|
||||
onClicked: {
|
||||
d.vendorId = model.id
|
||||
|
||||
@ -2,9 +2,8 @@ import QtQuick 2.4
|
||||
import QtQuick.Controls 2.1
|
||||
import QtQuick.Layouts 1.2
|
||||
import QtQuick.Controls.Material 2.1
|
||||
|
||||
import "components"
|
||||
import Mea 1.0
|
||||
import "components"
|
||||
|
||||
Page {
|
||||
id: root
|
||||
@ -14,30 +13,17 @@ Page {
|
||||
property QtObject networkManger
|
||||
|
||||
header: GuhHeader {
|
||||
text: qsTr("Wireless network")
|
||||
text: qsTr("%1 box network setup").arg(app.systemName)
|
||||
onBackPressed: {
|
||||
pageStack.pop()
|
||||
pageStack.pop()
|
||||
}
|
||||
|
||||
HeaderButton {
|
||||
imageSource: Qt.resolvedUrl("images/refresh.svg")
|
||||
onClicked: networkManger.manager.loadNetworks()
|
||||
}
|
||||
|
||||
HeaderButton {
|
||||
imageSource: Qt.resolvedUrl("images/settings.svg")
|
||||
onClicked: pageStack.push(settingsPage)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Component.onCompleted: networkManger.manager.loadNetworks()
|
||||
|
||||
Connections {
|
||||
target: networkManger.manager
|
||||
onErrorOccured: {
|
||||
print("Error occured", errorMessage)
|
||||
print("Error occurred", errorMessage)
|
||||
var errorDialog = Qt.createComponent(Qt.resolvedUrl("components/ErrorDialog.qml"));
|
||||
var popup = errorDialog.createObject(app, {text: errorMessage})
|
||||
popup.open()
|
||||
@ -51,14 +37,49 @@ Page {
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: loadNetworksTimer
|
||||
interval: networkManger.manager.accessPoints.count === 0 ? 1000 : 5000
|
||||
running: networkManger.manager.networkingEnabled && networkManger.manager.wirelessEnabled
|
||||
repeat: true
|
||||
onTriggered: {
|
||||
networkManger.manager.loadNetworks()
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
visible: networkManger.manager.initialized
|
||||
|
||||
Label {
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
text:{
|
||||
MeaListItemDelegate {
|
||||
Layout.fillWidth: true
|
||||
iconName: "../images/info.svg"
|
||||
text: qsTr("About this %1 box").arg(app.systemName)
|
||||
onClicked: pageStack.push(infoPage)
|
||||
}
|
||||
|
||||
SwitchDelegate {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Wired network")
|
||||
checked: networkManger.manager.networkingEnabled
|
||||
onClicked: networkManger.manager.enableNetworking(checked)
|
||||
}
|
||||
|
||||
SwitchDelegate {
|
||||
Layout.fillWidth: true
|
||||
enabled: networkManger.manager.networkingEnabled
|
||||
text: qsTr("Wireless network")
|
||||
checked: networkManger.manager.wirelessEnabled
|
||||
onClicked: {
|
||||
networkManger.manager.enableWireless(checked)
|
||||
}
|
||||
}
|
||||
|
||||
MeaListItemDelegate {
|
||||
Layout.fillWidth: true
|
||||
progressive: false
|
||||
text: qsTr("Networking status")
|
||||
subText: {
|
||||
switch (networkManger.manager.networkStatus) {
|
||||
case WirelessSetupManager.NetworkStatusUnknown:
|
||||
return qsTr("Unknown status.");
|
||||
@ -77,137 +98,93 @@ Page {
|
||||
case WirelessSetupManager.NetworkStatusGlobal:
|
||||
return qsTr("Online.");
|
||||
}
|
||||
return "???"
|
||||
}
|
||||
}
|
||||
|
||||
BusyIndicator {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
running: networkManger.manager.working
|
||||
ThinDivider {
|
||||
visible: networkManger.manager.wirelessEnabled
|
||||
}
|
||||
|
||||
ThinDivider { }
|
||||
|
||||
ListView {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
visible: networkManger.manager.wirelessEnabled
|
||||
|
||||
model: networkManger.manager.accessPoints
|
||||
clip: true
|
||||
|
||||
delegate: ItemDelegate {
|
||||
width: parent.width
|
||||
height: model.selectedNetwork ? app.delegateHeight * 1.5 : app.delegateHeight
|
||||
BusyIndicator {
|
||||
anchors.centerIn: parent
|
||||
running: networkManger.manager.working
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: guhAccent
|
||||
visible: model.selectedNetwork
|
||||
delegate: MeaListItemDelegate {
|
||||
width: parent.width
|
||||
text: model.ssid
|
||||
subText: {
|
||||
if (!model.selectedNetwork) {
|
||||
return "";
|
||||
}
|
||||
switch (networkManger.manager.wirelessStatus) {
|
||||
case WirelessSetupManager.WirelessStatusUnknown:
|
||||
return qsTr("Unknown status.");
|
||||
case WirelessSetupManager.WirelessStatusUnmanaged:
|
||||
return qsTr("Network unmanaged.");
|
||||
case WirelessSetupManager.WirelessStatusUnavailable:
|
||||
return qsTr("Network unavailable.");
|
||||
case WirelessSetupManager.WirelessStatusDisconnected:
|
||||
return qsTr("Disconnected.");
|
||||
case WirelessSetupManager.WirelessStatusPrepare:
|
||||
return qsTr("Prepare connection...");
|
||||
case WirelessSetupManager.WirelessStatusConfig:
|
||||
return qsTr("Configure network...");
|
||||
case WirelessSetupManager.WirelessStatusNeedAuth:
|
||||
return qsTr("Authentication needed");
|
||||
case WirelessSetupManager.WirelessStatusIpConfig:
|
||||
return qsTr("Configuration IP...");
|
||||
case WirelessSetupManager.WirelessStatusIpCheck:
|
||||
return qsTr("Check IP...");
|
||||
case WirelessSetupManager.WirelessStatusSecondaries:
|
||||
return qsTr("Secondaries...");
|
||||
case WirelessSetupManager.WirelessStatusActivated:
|
||||
return qsTr("Network connected.");
|
||||
case WirelessSetupManager.WirelessStatusDeactivating:
|
||||
return qsTr("Network disconnecting...");
|
||||
case WirelessSetupManager.WirelessStatusFailed:
|
||||
return qsTr("Network connection failed.");
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
iconColor: model.selectedNetwork ? app.guhAccent : "#808080"
|
||||
iconName: {
|
||||
if (model.protected) {
|
||||
if (model.signalStrength <= 25)
|
||||
return Qt.resolvedUrl("images/nm-signal-25-secure.svg")
|
||||
|
||||
Item {
|
||||
Layout.preferredHeight: app.delegateHeight
|
||||
Layout.preferredWidth: height
|
||||
if (model.signalStrength <= 50)
|
||||
return Qt.resolvedUrl("images/nm-signal-50-secure.svg")
|
||||
|
||||
ColorIcon {
|
||||
id: image
|
||||
anchors.fill: parent
|
||||
anchors.margins: app.margins / 2
|
||||
name: {
|
||||
if (model.protected) {
|
||||
if (model.signalStrength <= 25)
|
||||
return Qt.resolvedUrl("images/nm-signal-25-secure.svg")
|
||||
if (model.signalStrength <= 75)
|
||||
return Qt.resolvedUrl("images/nm-signal-75-secure.svg")
|
||||
|
||||
if (model.signalStrength <= 50)
|
||||
return Qt.resolvedUrl("images/nm-signal-50-secure.svg")
|
||||
if (model.signalStrength <= 100)
|
||||
return Qt.resolvedUrl("images/nm-signal-100-secure.svg")
|
||||
|
||||
if (model.signalStrength <= 75)
|
||||
return Qt.resolvedUrl("images/nm-signal-75-secure.svg")
|
||||
} else {
|
||||
|
||||
if (model.signalStrength <= 100)
|
||||
return Qt.resolvedUrl("images/nm-signal-100-secure.svg")
|
||||
if (model.signalStrength <= 25)
|
||||
return Qt.resolvedUrl("images/nm-signal-25.svg")
|
||||
|
||||
} else {
|
||||
if (model.signalStrength <= 50)
|
||||
return Qt.resolvedUrl("images/nm-signal-50.svg")
|
||||
|
||||
if (model.signalStrength <= 25)
|
||||
return Qt.resolvedUrl("images/nm-signal-25.svg")
|
||||
if (model.signalStrength <= 75)
|
||||
return Qt.resolvedUrl("images/nm-signal-75.svg")
|
||||
|
||||
if (model.signalStrength <= 50)
|
||||
return Qt.resolvedUrl("images/nm-signal-50.svg")
|
||||
if (model.signalStrength <= 100)
|
||||
return Qt.resolvedUrl("images/nm-signal-100.svg")
|
||||
|
||||
if (model.signalStrength <= 75)
|
||||
return Qt.resolvedUrl("images/nm-signal-75.svg")
|
||||
|
||||
if (model.signalStrength <= 100)
|
||||
return Qt.resolvedUrl("images/nm-signal-100.svg")
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
text: model.signalStrength + "%"
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
Label {
|
||||
text: model.ssid
|
||||
}
|
||||
|
||||
Label {
|
||||
text: model.macAddress
|
||||
font.pixelSize: app.smallFont
|
||||
}
|
||||
|
||||
Label {
|
||||
text: {
|
||||
switch (networkManger.manager.wirelessStatus) {
|
||||
case WirelessSetupManager.WirelessStatusUnknown:
|
||||
return qsTr("Unknown status.");
|
||||
case WirelessSetupManager.WirelessStatusUnmanaged:
|
||||
return qsTr("Network unmanaged.");
|
||||
case WirelessSetupManager.WirelessStatusUnavailable:
|
||||
return qsTr("Network unavailable.");
|
||||
case WirelessSetupManager.WirelessStatusDisconnected:
|
||||
return qsTr("Disconnected.");
|
||||
case WirelessSetupManager.WirelessStatusPrepare:
|
||||
return qsTr("Prepare connection...");
|
||||
case WirelessSetupManager.WirelessStatusConfig:
|
||||
return qsTr("Configure network...");
|
||||
case WirelessSetupManager.WirelessStatusNeedAuth:
|
||||
return qsTr("Authentication needed");
|
||||
case WirelessSetupManager.WirelessStatusIpConfig:
|
||||
return qsTr("Configuration IP...");
|
||||
case WirelessSetupManager.WirelessStatusIpCheck:
|
||||
return qsTr("Check IP...");
|
||||
case WirelessSetupManager.WirelessStatusSecondaries:
|
||||
return qsTr("Secondaries...");
|
||||
case WirelessSetupManager.WirelessStatusActivated:
|
||||
return qsTr("Network connected.");
|
||||
case WirelessSetupManager.WirelessStatusDeactivating:
|
||||
return qsTr("Network disconnecting...");
|
||||
case WirelessSetupManager.WirelessStatusFailed:
|
||||
return qsTr("Network connection failed.");
|
||||
}
|
||||
}
|
||||
|
||||
font.pixelSize: app.smallFont
|
||||
visible: model.selectedNetwork
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
text: qsTr("Disconnect")
|
||||
visible: model.selectedNetwork && networkManger.manager.wirelessStatus === WirelessSetupManager.WirelessStatusActivated
|
||||
onClicked: networkManger.manager.disconnectWirelessNetwork()
|
||||
}
|
||||
}
|
||||
|
||||
@ -234,40 +211,49 @@ Page {
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
anchors.margins: app.margins
|
||||
anchors { left: parent.left; top: parent.top; right: parent.right }
|
||||
|
||||
Label {
|
||||
wrapMode: Text.WordWrap
|
||||
font.pixelSize: app.largeFont
|
||||
Layout.fillWidth: true
|
||||
text: ssid + " (" + macAddress + ")"
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
Layout.topMargin: app.margins
|
||||
text: qsTr("Please enter the password for the Wifi network.")
|
||||
}
|
||||
|
||||
Label {
|
||||
wrapMode: Text.WordWrap
|
||||
MeaListItemDelegate {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Please enter the password for the Wifi network.")
|
||||
text: ssid
|
||||
subText: macAddress
|
||||
progressive: false
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
spacing: app.margins
|
||||
|
||||
TextField {
|
||||
id: passwordTextField
|
||||
Layout.fillWidth: true
|
||||
echoMode: TextInput.Password
|
||||
}
|
||||
|
||||
Button {
|
||||
text: qsTr("Show password")
|
||||
onClicked: {
|
||||
if (passwordTextField.echoMode === TextInput.Normal) {
|
||||
text = qsTr("Show password")
|
||||
passwordTextField.echoMode = TextInput.Password
|
||||
} else {
|
||||
text = qsTr("Hide password")
|
||||
passwordTextField.echoMode = TextInput.Normal
|
||||
ColorIcon {
|
||||
Layout.preferredHeight: app.iconSize
|
||||
Layout.preferredWidth: app.iconSize
|
||||
name: "../images/eye.svg"
|
||||
color: passwordTextField.echoMode === TextInput.Normal ? app.guhAccent : keyColor
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
anchors.margins: -app.margins / 2
|
||||
onClicked: {
|
||||
if (passwordTextField.echoMode === TextInput.Normal) {
|
||||
passwordTextField.echoMode = TextInput.Password
|
||||
} else {
|
||||
passwordTextField.echoMode = TextInput.Normal
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -275,6 +261,8 @@ Page {
|
||||
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: app.margins
|
||||
Layout.rightMargin: app.margins
|
||||
text: qsTr("Connect")
|
||||
onPressed: {
|
||||
networkManger.manager.connectWirelessNetwork(ssid, passwordTextField.text)
|
||||
@ -282,130 +270,52 @@ Page {
|
||||
pageStack.pop()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Component {
|
||||
id: settingsPage
|
||||
id: infoPage
|
||||
|
||||
Page {
|
||||
id: root
|
||||
header: GuhHeader {
|
||||
text: qsTr("Network settings")
|
||||
text: qsTr("Box information")
|
||||
onBackPressed: pageStack.pop()
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
anchors.margins: app.margins
|
||||
anchors { left: parent.left; top: parent.top; right: parent.right }
|
||||
|
||||
RowLayout {
|
||||
anchors.margins: app.margins
|
||||
MeaListItemDelegate {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Networking")
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: networkingSwitch
|
||||
checked: networkManger.manager.networkingEnabled
|
||||
onCheckedChanged: networkManger.manager.enableNetworking(checked)
|
||||
}
|
||||
progressive: false
|
||||
text: qsTr("System UUID")
|
||||
subText: networkManger.manager.modelNumber
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
anchors.margins: app.margins
|
||||
MeaListItemDelegate {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Wireless networking")
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: wirelessNetworkingSwitch
|
||||
checked: networkManger.manager.wirelessEnabled
|
||||
onCheckedChanged: networkManger.manager.enableWireless(checked)
|
||||
}
|
||||
progressive: false
|
||||
text: qsTr("Manufacturer")
|
||||
subText: networkManger.manager.manufacturer
|
||||
}
|
||||
|
||||
ThinDivider { }
|
||||
|
||||
Label {
|
||||
MeaListItemDelegate {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Bluetooth device information")
|
||||
progressive: false
|
||||
text: qsTr("Software revision")
|
||||
subText: networkManger.manager.softwareRevision
|
||||
}
|
||||
|
||||
ThinDivider { }
|
||||
|
||||
RowLayout {
|
||||
anchors.margins: app.margins
|
||||
MeaListItemDelegate {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("System UUID")
|
||||
}
|
||||
|
||||
Label {
|
||||
text: networkManger.manager.modelNumber
|
||||
}
|
||||
progressive: false
|
||||
text: qsTr("Firmware revision")
|
||||
subText: networkManger.manager.firmwareRevision
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
MeaListItemDelegate {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Manufacturer")
|
||||
}
|
||||
Label {
|
||||
text: networkManger.manager.manufacturer
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
anchors.margins: app.margins
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Software revision")
|
||||
}
|
||||
Label {
|
||||
text: networkManger.manager.softwareRevision
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
anchors.margins: app.margins
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Firmware revision")
|
||||
}
|
||||
Label {
|
||||
text: networkManger.manager.firmwareRevision
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
anchors.margins: app.margins
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Hardware revision")
|
||||
}
|
||||
Label {
|
||||
text: networkManger.manager.hardwareRevision
|
||||
}
|
||||
progressive: false
|
||||
text: qsTr("Hardware revision")
|
||||
subText: networkManger.manager.hardwareRevision
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ SwipeDelegate {
|
||||
}
|
||||
|
||||
ColorIcon {
|
||||
Layout.preferredHeight: app.iconSize
|
||||
Layout.preferredHeight: app.iconSize * .6
|
||||
Layout.preferredWidth: height
|
||||
name: "../images/next.svg"
|
||||
visible: root.progressive
|
||||
|
||||
191
mea/ui/images/eye.svg
Normal file
191
mea/ui/images/eye.svg
Normal file
@ -0,0 +1,191 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="96"
|
||||
height="96"
|
||||
id="svg4874"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
viewBox="0 0 96 96.000001"
|
||||
sodipodi:docname="eye.svg">
|
||||
<defs
|
||||
id="defs4876" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="8.7812488"
|
||||
inkscape:cx="-10.68755"
|
||||
inkscape:cy="46.064049"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g4780"
|
||||
showgrid="true"
|
||||
showborder="true"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:snap-bbox-midpoints="true"
|
||||
inkscape:object-paths="true"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-center="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:window-width="2880"
|
||||
inkscape:window-height="1698"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="44"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid5451"
|
||||
empspacing="8" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="8,-8.0000001"
|
||||
id="guide4063"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="4,-8.0000001"
|
||||
id="guide4065"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-8,88.000001"
|
||||
id="guide4067"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-8,92.000001"
|
||||
id="guide4069"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="104,4"
|
||||
id="guide4071"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-5,8.0000001"
|
||||
id="guide4073"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="88,-8.0000001"
|
||||
id="guide4077"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-8,84.000001"
|
||||
id="guide4074"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="12,-8.0000001"
|
||||
id="guide4076"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="84,-8.0000001"
|
||||
id="guide4080"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
position="48,-8.0000001"
|
||||
orientation="1,0"
|
||||
id="guide4170"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
position="-8,48"
|
||||
orientation="0,1"
|
||||
id="guide4172"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
position="92,-8.0000001"
|
||||
orientation="1,0"
|
||||
id="guide4760"
|
||||
inkscape:locked="false" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata4879">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(67.857146,-78.50504)">
|
||||
<g
|
||||
transform="matrix(0,-1,-1,0,373.50506,516.50504)"
|
||||
id="g4845"
|
||||
style="display:inline">
|
||||
<g
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-filename="next01.png"
|
||||
transform="matrix(-0.9996045,0,0,1,575.94296,-611.00001)"
|
||||
id="g4778"
|
||||
inkscape:label="Layer 1">
|
||||
<g
|
||||
transform="matrix(-1,0,0,1,575.99999,611)"
|
||||
id="g4780"
|
||||
style="display:inline">
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
|
||||
id="rect4782"
|
||||
width="96.037987"
|
||||
height="96"
|
||||
x="-438.00244"
|
||||
y="345.36221"
|
||||
transform="scale(-1,1)" />
|
||||
<g
|
||||
id="g862"
|
||||
transform="matrix(1.8130651,0,0,1.8130651,-260.30984,-370.59492)">
|
||||
<path
|
||||
sodipodi:nodetypes="zczcz"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5662"
|
||||
d="m 369.35571,421.36222 c 0,11.82549 -10.68499,17.73822 -10.68499,17.73822 0,0 -10.68506,-5.91273 -10.68506,-17.73822 0,-11.82547 10.68506,-17.73822 10.68506,-17.73822 0,0 10.68499,5.91275 10.68499,17.73822 z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#808080;stroke-width:4.00079107;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
<ellipse
|
||||
ry="6.5025721"
|
||||
rx="6.5"
|
||||
transform="matrix(0,-1,-1,0,0,0)"
|
||||
cy="-358.67068"
|
||||
cx="-421.36221"
|
||||
id="path4242"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00079155;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.2 KiB |
222
mea/ui/images/nymea-box-setup.svg
Normal file
222
mea/ui/images/nymea-box-setup.svg
Normal file
@ -0,0 +1,222 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="connect-box"
|
||||
viewBox="0 0 112.6 111.4"
|
||||
version="1.1"
|
||||
sodipodi:docname="nymea-box-setup.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)">
|
||||
<metadata
|
||||
id="metadata77">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>Asset 31</dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs75" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2880"
|
||||
inkscape:window-height="1698"
|
||||
id="namedview73"
|
||||
showgrid="false"
|
||||
inkscape:zoom="47.935999"
|
||||
inkscape:cx="85.797004"
|
||||
inkscape:cy="58.750007"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="44"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="connect-box" />
|
||||
<title
|
||||
id="title2">Asset 31</title>
|
||||
<path
|
||||
d="m 89.5,104.7 0.9,-0.5 0.5,-0.4 a 17.7,17.7 0 0 0 2.6,-3.5"
|
||||
style="fill:none;stroke:#ffffff;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 8.4,70.3 C 2.8,60.4 -1.1,48.4 0.3,36.7 1,31.2 4.6,21.5 7.8,16.9 l 0.6,9.2 -4.2,18.3 11.9,25.9 20.6,22.6 23.1,10.5 22.9,1.9 21.2,-9.3 -7.5,7.2 c -9.2,8.1 -21.7,9.3 -32.9,7.4 C 52.3,108.7 41,103.1 31.7,96.3 A 87.8,87.8 0 0 1 8.4,70.3 Z"
|
||||
style="fill:#e6e6e6;fill-opacity:1"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 28,80.1 4.6,-11.9 58.1,18.5 3.2,18 c 0,0 -4.5,7.7 -28.1,3.7 -23.6,-4 -40.2,-23.1 -39.9,-22.8 z"
|
||||
style="fill:#fafafa;fill-opacity:1"
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 3,30.7 A 30.9,30.9 0 0 1 8.4,16.1 33.9,33.9 0 0 1 20.9,5.1 l 2.1,-1 c 12.8,-5.8 27.1,-5 39.8,-0.4 l 5.3,2.1 a 81,81 0 0 1 35.6,31.7 l 3,5.6 c 6.3,11 7.6,28.5 3.4,41.7 l -0.7,2.1 a 42.3,42.3 0 0 1 -17.5,19.6 50.2,50.2 0 0 0 5,-6.2 c 2.4,-4.3 3.2,-8.6 4.2,-13.4 a 30.9,30.9 0 0 0 0.2,-9.1 23,23 0 0 0 7,-19.5 C 107.7,51.1 104.7,43.9 101,37.8 A 73.1,73.1 0 0 0 68.4,9.4 C 61.8,6.6 54.3,4.7 47,5.3 39.7,5.9 32.6,8.8 28.5,15.4 24.4,22 24.3,29.7 25.9,36.7 c 1.6,7 5.2,13.3 9.6,19.4 A 66.1,66.1 0 0 1 34,65 C 32.6,70 28.9,81.4 25.9,85.6 13,72.9 0.8,50.5 3,30.7"
|
||||
style="fill:#f0f0f0;fill-opacity:1"
|
||||
id="path10"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 28.4,15.4 C 32.6,8.8 39.6,5.8 46.9,5.3 54.2,4.8 61.8,6.6 68.4,9.4 a 73.3,73.3 0 0 1 32.7,28.4 c 3.7,6.1 6.6,13.3 7.2,20.5 0.6,7.2 -1.4,14.2 -7.1,19.5 h -0.7 l -64,-21.4 -1,-0.3 C 31.1,50 27.6,44 25.9,36.6 24.2,29.2 24.4,21.9 28.4,15.4 Z"
|
||||
style="fill:#fafafa;fill-opacity:1"
|
||||
id="path12"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 91.1,87.3 101.2,77.8 35.5,56.2 c 0,0 -0.1,0.5 -0.2,1.6 a 45.3,45.3 0 0 1 -1.6,7.9 l -0.9,3.1 z"
|
||||
style="fill:#dcdcdc;fill-opacity:1"
|
||||
id="path14"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 101.3,87.4 a 41.9,41.9 0 0 1 -4.7,13.4 20.2,20.2 0 0 1 -2.7,3.8 l -2,1.9 -1.4,-19.4 10.7,-9.2 0.2,1.3 a 20.6,20.6 0 0 1 -0.1,8.2 z"
|
||||
style="fill:#e6e6e6;fill-opacity:1"
|
||||
id="path16"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 57.1,30.1 c 3.3,-2.1 7.7,-1.4 11,-0.2 6.5,2.5 13,8.7 14.7,15.6 C 85.2,55 77.8,59 69.3,56.1 62.6,53.7 55.8,47.3 54,40.2 53.1,36.6 53.5,32.3 57.1,30.1 Z"
|
||||
style="fill:#dcdcdc;fill-opacity:1"
|
||||
id="path18"
|
||||
inkscape:connector-curvature="0" />
|
||||
<ellipse
|
||||
cx="13.59177"
|
||||
cy="79.449982"
|
||||
rx="9.8000002"
|
||||
ry="15.7"
|
||||
transform="rotate(-47.3)"
|
||||
style="fill:#ebebeb;fill-opacity:1"
|
||||
id="ellipse20" />
|
||||
<path
|
||||
d="m 36.8,49.1 c -0.1,2.4 2.1,4.6 4,5.5 a 4.3,4.3 0 0 0 3.5,0.4 2.7,2.7 0 0 0 2,-2.6 c 0,-2.4 -2.1,-4.6 -4,-5.5 a 4.7,4.7 0 0 0 -3.5,-0.4 2.8,2.8 0 0 0 -2,2.6 z"
|
||||
style="fill:#c8c8c8;fill-opacity:1"
|
||||
id="path22"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 47.7,52.8 a 2.6,2.6 0 0 0 1.5,2.1 c 0.9,0.4 2,0.3 2,-0.8 A 2.4,2.4 0 0 0 49.7,52 c -0.9,-0.4 -2,-0.3 -2,0.8 z"
|
||||
style="fill:#b4b4b4;fill-opacity:1"
|
||||
id="path24"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 38.6,50.6 a 3.6,3.6 0 0 0 2.2,3 c 1.3,0.6 3,0.4 3,-1.2 a 3.8,3.8 0 0 0 -2.2,-3 c -1.3,-0.6 -3,-0.4 -3,1.2 z"
|
||||
style="fill:#1d1d1b"
|
||||
id="path26"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 47.3,70 a 1,1 0 0 1 0.5,-0.4 l 0.6,-0.2 a 2.2,2.2 0 0 1 1.4,0.1 l 0.6,0.3 0.3,0.4 a 0.9,0.9 0 0 1 0.1,0.5 0.8,0.8 0 0 1 -0.2,0.4 l -0.5,0.4 -0.6,0.2 A 2.2,2.2 0 0 1 48.1,71.6 C 47.9,71.5 47.7,71.5 47.5,71.3 47.3,71.1 47.2,71.1 47.2,70.9 A 0.7,0.7 0 0 1 47.1,70.4 0.8,0.8 0 0 1 47.3,70 Z"
|
||||
style="fill:#333233"
|
||||
id="path28"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 47.4,69.9 a 0.5,0.5 0 0 1 0.4,-0.3 l 0.6,-0.2 a 2,2 0 0 1 1.3,0.1 l 0.4,0.2 0.4,0.4 v 0.3 a 0.5,0.5 0 0 1 -0.2,0.4 l -0.4,0.3 -0.6,0.2 A 2.5,2.5 0 0 1 48.1,71.2 L 47.6,71 47.3,70.6 a 0.4,0.4 0 0 1 -0.1,-0.3 0.5,0.5 0 0 1 0.2,-0.4 z"
|
||||
style="fill:#c5114a"
|
||||
id="path30"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 70,76.7 a 0.8,0.8 0 0 0 0.9,-0.1 l 3.2,-3.2 c 0.2,-0.2 0,-0.4 -0.3,-0.5 L 59.9,68.3 A 0.8,0.8 0 0 0 59,68.5 l -3.1,3.3 c -0.3,0.2 0,0.4 0.2,0.5 z"
|
||||
style="fill:#c8c8c8;fill-opacity:1"
|
||||
id="path32"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 69.6,75.4 a 0.6,0.6 0 0 0 0.7,-0.1 l 2.5,-2.4 c 0.1,-0.2 0,-0.3 -0.2,-0.4 L 59.8,68.2 a 0.6,0.6 0 0 0 -0.7,0.1 l -2.3,2.5 c -0.2,0.2 0,0.4 0.2,0.4 z"
|
||||
style="fill:#050505;fill-opacity:1"
|
||||
id="path34"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 89.1,83 a 2.1,2.1 0 0 1 -2.3,0.4 L 79.7,81.2 C 79,80.9 78.5,80.4 79.2,79.8 L 80,79.1 a 2.4,2.4 0 0 1 2.3,-0.4 l 6.5,2.1 0.7,0.2 c 0.7,0.2 1.1,0.7 0.5,1.3 z"
|
||||
style="fill:#c8c8c8;fill-opacity:1"
|
||||
id="path36"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 88.6,82.5 a 2.2,2.2 0 0 1 -1.8,0.3 L 79.9,80.5 C 79.4,80.4 79,80 79.5,79.5 L 80.1,79 A 2,2 0 0 1 82,78.6 l 6,1.9 0.9,0.3 c 0.6,0.2 1.2,0.4 0.3,1.1 z"
|
||||
style="fill:#040506"
|
||||
id="path38"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 45.1,40.8 A 19.9,19.9 0 0 1 44.5,29.7 l 1.2,-5.2 a 20.7,20.7 0 0 0 -0.5,11.3 l 1.2,0.8 2.3,0.7 -1.2,2.1 -1,1.2 z"
|
||||
style="fill:#b4b4b4;fill-opacity:1"
|
||||
id="path40"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 45.2,35.8 a 20.7,20.7 0 0 1 0.5,-11.3 l 0.2,-0.3 0.8,-0.4 v 0 a 1.3,1.3 0 0 1 1.2,-0.1 v 0 l 3.1,1.4 v 0 a 1.2,1.2 0 0 1 0.8,1.2 0.4,0.4 0 0 1 -0.1,0.3 v 0 a 14.6,14.6 0 0 0 0,9 C 51.6,35.3 51.1,35.2 51.1,35.2 L 48,34.4 a 2.2,2.2 0 0 0 -1.6,0.3 7.4,7.4 0 0 0 -1.2,1.1 z"
|
||||
style="fill:#c8c8c8;fill-opacity:1"
|
||||
id="path42"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 45.2,35.8 a 1.8,1.8 0 0 0 1.3,1.1 l 1.5,0.4 c 0.3,0.1 0.5,0.3 0.2,0.6 l -1.4,1.9 -0.5,0.4 -1.2,0.6 3,0.9 h 0.7 l 0.6,-0.2 0.3,-0.5 v -0.4 c 0,-0.1 -0.1,-0.2 -0.1,-0.3 0,-0.1 1.2,-2.2 1.9,-3.4 h 0.1 a 1.9,1.9 0 0 0 0.2,-0.7 0.6,0.6 0 0 0 -0.1,-0.4 c -0.1,-0.3 -0.6,-0.4 -0.6,-0.4 l -3.1,-1 a 2.2,2.2 0 0 0 -1.6,0.3 c -0.2,0.2 -1.1,0.8 -1.2,1.1 z"
|
||||
style="fill:#c8c8c8;fill-opacity:1"
|
||||
id="path44"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 91.5,57.3 a 10,10 0 0 0 0.4,-2.4 l -1.2,-0.2 -0.6,1.2 z"
|
||||
style="fill:#b4b4b4;fill-opacity:1"
|
||||
id="path46"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 90.8,40.8 -3.1,2.6 h -0.6 l -0.5,0.2 a 0.8,0.8 0 0 0 -0.2,0.5 v 0.3 a 0.4,0.4 0 0 0 0.1,0.3 16.5,16.5 0 0 1 0.8,9.1 0.6,0.6 0 0 0 0,0.6 1.1,1.1 0 0 0 0.3,0.7 l 0.5,0.6 0.4,0.3 h 0.3 l 2.7,1.2 A 1.8,1.8 0 0 1 91,56 0.5,0.5 0 0 1 91.2,55.6 l 1.3,-1.4 a 1.1,1.1 0 0 1 1,-0.1 l 1.2,0.6 c 0.4,0.1 0.6,0.2 0.9,-0.1 v 0 L 96,54.2 h 0.1 c 0.1,0 0.1,-0.1 0.2,-0.2 0.1,-0.1 0.3,-0.6 0.1,-0.9 C 96.2,52.8 93.5,52 93.5,52 L 92,51 92.7,45.7 Z"
|
||||
style="fill:#c8c8c8;fill-opacity:1"
|
||||
id="path48"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 96.7,52.7 A 20.9,20.9 0 0 0 95.6,42.2 h -0.1 a 0.9,0.9 0 0 0 -0.6,-0.6 h -0.2 l -2.7,-1 v 0 a 0.9,0.9 0 0 0 -1.1,0.2 c -0.3,0.2 -0.2,0.5 -0.2,0.8 a 15.7,15.7 0 0 1 0.9,9.1 c -0.1,0.6 0.6,1.4 1.1,1.6 l 2.8,1.3 c 0.4,0 1,0 1.1,-0.5 z"
|
||||
style="fill:#d2d2d2;fill-opacity:1"
|
||||
id="path50"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 38.5,50.6 a 3.8,3.8 0 0 0 2.3,3 c 1.3,0.6 3.1,0.4 3.1,-1.3 A 4,4 0 0 0 41.6,49.4 C 40.2,48.8 38.5,49 38.5,50.6 Z"
|
||||
style="fill:none;stroke:#d2d2d2;stroke-miterlimit:10;stroke-opacity:1"
|
||||
id="path52"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 43,53.1 a 2.6,2.6 0 0 1 -3.1,-0.2 c -1.2,-0.8 -1.6,-2 -1,-3 a 1.5,1.5 0 0 1 1.4,-0.8 l 3.4,3.1 c 0,0 0,0.4 -0.7,0.9 z"
|
||||
style="fill:#57baae;fill-opacity:1"
|
||||
id="path54"
|
||||
inkscape:connector-curvature="0" />
|
||||
<ellipse
|
||||
cx="-18.521399"
|
||||
cy="63.1968"
|
||||
rx="1.5978385"
|
||||
ry="2.5964875"
|
||||
transform="rotate(-55.195988)"
|
||||
style="fill:#57baae;stroke-width:0.99864906;fill-opacity:1"
|
||||
id="ellipse56" />
|
||||
<path
|
||||
d="m 43.8,47.9 c 0.2,0.2 0.4,0.3 0.5,0.5 l 2.2,-2.4 -0.8,-0.6 -2.1,2.3 z"
|
||||
style="fill:#57baae;fill-opacity:1"
|
||||
id="path58"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 38.6,54.4 -0.6,-0.5 -3.5,3.9 0.8,0.6 3.5,-3.9 z"
|
||||
style="fill:#57baae;fill-opacity:1"
|
||||
id="path60"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 46,51.3 3,-0.2 v -1 l -3.2,0.2 z"
|
||||
style="fill:#57baae;fill-opacity:1"
|
||||
id="path62"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 36.4,50.7 31.7,51 v 1 l 4.9,-0.3 a 1.7,1.7 0 0 1 -0.2,-1 z"
|
||||
style="fill:#57baae;fill-opacity:1"
|
||||
id="path64"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 37.8,47.2 -2.8,-2.6 -0.7,0.8 2.8,2.4 z"
|
||||
style="fill:#57baae;fill-opacity:1"
|
||||
id="path66"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 45.6,54.2 -0.2,0.3 -0.5,0.4 3.2,2.9 0.7,-0.8 z"
|
||||
style="fill:#57baae;fill-opacity:1"
|
||||
id="path68"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
168
mea/ui/images/private-browsing.svg
Normal file
168
mea/ui/images/private-browsing.svg
Normal file
@ -0,0 +1,168 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="96"
|
||||
height="96"
|
||||
id="svg4874"
|
||||
version="1.1"
|
||||
inkscape:version="0.91+devel r"
|
||||
viewBox="0 0 96 96.000001"
|
||||
sodipodi:docname="private-browsing.svg">
|
||||
<defs
|
||||
id="defs4876" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.0249991"
|
||||
inkscape:cx="44.270464"
|
||||
inkscape:cy="35.701054"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g4780"
|
||||
showgrid="true"
|
||||
showborder="true"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:snap-bbox-midpoints="true"
|
||||
inkscape:object-paths="true"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-center="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:snap-global="true">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid5451"
|
||||
empspacing="8" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="8,-8.0000001"
|
||||
id="guide4063" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="4,-8.0000001"
|
||||
id="guide4065" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-8,88.000001"
|
||||
id="guide4067" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-8,92.000001"
|
||||
id="guide4069" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="104,4"
|
||||
id="guide4071" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-5,8.0000001"
|
||||
id="guide4073" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="88,-8.0000001"
|
||||
id="guide4077" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="-8,84.000001"
|
||||
id="guide4074" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="12,-8.0000001"
|
||||
id="guide4076" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="84,-8.0000001"
|
||||
id="guide4080" />
|
||||
<sodipodi:guide
|
||||
position="48,-8.0000001"
|
||||
orientation="1,0"
|
||||
id="guide4170" />
|
||||
<sodipodi:guide
|
||||
position="-8,48"
|
||||
orientation="0,1"
|
||||
id="guide4172" />
|
||||
<sodipodi:guide
|
||||
position="92,-8.0000001"
|
||||
orientation="1,0"
|
||||
id="guide4760" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata4879">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(67.857146,-78.50504)">
|
||||
<g
|
||||
transform="matrix(0,-1,-1,0,373.50506,516.50504)"
|
||||
id="g4845"
|
||||
style="display:inline">
|
||||
<g
|
||||
inkscape:export-ydpi="90"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-filename="next01.png"
|
||||
transform="matrix(-0.9996045,0,0,1,575.94296,-611.00001)"
|
||||
id="g4778"
|
||||
inkscape:label="Layer 1">
|
||||
<g
|
||||
transform="matrix(-1,0,0,1,575.99999,611)"
|
||||
id="g4780"
|
||||
style="display:inline">
|
||||
<rect
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
|
||||
id="rect4782"
|
||||
width="96.037987"
|
||||
height="96"
|
||||
x="-438.00244"
|
||||
y="345.36221"
|
||||
transform="scale(-1,1)" />
|
||||
<path
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.46281052px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.99999994"
|
||||
d="M 48 20.300781 C 38.61157 20.300781 29.819444 21.544274 21.621094 24.03125 C 13.488864 26.571345 6.28099 29.969999 0 34.097656 L 0 35.232422 L 0 39.271484 L 0 62.966797 L 0 66.166016 C 2.93113 68.718876 6.2948038 70.82159 10.089844 72.392578 C 13.915734 73.93071 18.019131 74.699219 22.400391 74.699219 C 26.781661 74.699219 30.869023 73.93071 34.664062 72.392578 C 38.489962 70.82159 41.869661 68.718876 44.800781 66.166016 C 45.219521 65.817963 45.700038 65.536561 46.242188 65.322266 C 46.788738 65.112449 47.37411 65.007812 48 65.007812 C 48.6259 65.007812 49.209803 65.112279 49.751953 65.322266 C 50.298513 65.536561 50.780489 65.817963 51.199219 66.166016 C 54.130359 68.718876 57.494023 70.82159 61.289062 72.392578 C 65.114953 73.93071 69.218349 74.699219 73.599609 74.699219 C 77.980879 74.699219 82.070194 73.93071 85.865234 72.392578 C 89.691134 70.82159 93.06887 68.718876 96 66.166016 L 96 62.966797 L 96 39.271484 L 96 35.232422 L 96 34.097656 C 89.71902 29.969999 82.4796 26.571345 74.28125 24.03125 C 66.14901 21.544274 57.38843 20.300781 48 20.300781 z M 48 24.298828 C 57.02961 24.298828 65.378823 25.493166 73.095703 27.851562 C 80.229583 30.061848 86.449297 33.012269 91.998047 36.439453 L 91.998047 39.269531 L 91.998047 62.964844 L 91.998047 64.160156 C 89.713992 65.94464 87.218872 67.510852 84.349609 68.689453 L 84.345703 68.691406 C 81.051703 70.023849 77.507023 70.701172 73.601562 70.701172 C 69.696742 70.701172 66.133404 70.021738 62.802734 68.685547 C 59.409344 67.278264 56.432808 65.417224 53.830078 63.150391 L 53.794922 63.121094 L 53.759766 63.089844 C 52.994136 62.453446 52.124454 61.956258 51.214844 61.599609 L 51.207031 61.597656 L 51.199219 61.59375 C 50.171819 61.195817 49.073763 61.009766 48.001953 61.009766 C 46.929423 61.009766 45.832334 61.196839 44.808594 61.589844 L 44.789062 61.597656 L 44.771484 61.603516 C 43.867754 61.960734 43.003398 62.457134 42.242188 63.089844 L 42.207031 63.121094 L 42.169922 63.150391 C 39.568072 65.416474 36.578528 67.280481 33.148438 68.689453 L 33.142578 68.691406 C 29.848578 70.023839 26.303898 70.701172 22.398438 70.701172 C 18.492068 70.701172 14.929466 70.020845 11.597656 68.683594 C 8.7613262 67.507089 6.27868 65.947007 4 64.164062 L 4 62.964844 L 4 39.269531 L 4 36.435547 C 9.542 33.009802 15.729632 30.063875 22.794922 27.855469 C 30.583732 25.494273 38.97036 24.298828 48 24.298828 z "
|
||||
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
|
||||
id="path4186" />
|
||||
<path
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.46281052px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1.00019777"
|
||||
d="m 395.18763,415.76224 c 0,-3.12948 -0.5255,-6.04968 -1.57978,-8.76043 -1.07648,-2.73278 -2.48958,-5.14591 -4.23918,-7.23957 -1.74949,2.09366 -3.16259,4.50679 -4.23918,7.23957 -1.05418,2.71075 -1.58188,5.63095 -1.58188,8.76043 0,3.12947 0.5277,6.06096 1.58188,8.79375 1.07659,2.71074 2.48969,5.11259 4.23918,7.20625 1.7496,-2.09366 3.1627,-4.49551 4.23918,-7.20625 1.05428,-2.73279 1.57978,-5.66428 1.57978,-8.79375 z"
|
||||
id="path4184" />
|
||||
<path
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.46281052px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1.00019777"
|
||||
d="m 395.18763,370.96223 c 0,-3.12948 -0.5255,-6.04967 -1.57978,-8.76042 -1.07648,-2.73278 -2.48958,-5.14591 -4.23918,-7.23958 -1.74949,2.09367 -3.16259,4.5068 -4.23918,7.23958 -1.05418,2.71075 -1.58188,5.63094 -1.58188,8.76042 0,3.12948 0.5277,6.06097 1.58188,8.79376 1.07659,2.71074 2.48969,5.11258 4.23918,7.20625 1.7496,-2.09367 3.1627,-4.49551 4.23918,-7.20625 1.05428,-2.73279 1.57978,-5.66428 1.57978,-8.79376 z"
|
||||
id="path4120" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.8 KiB |
576
mea/ui/images/rpi-setup.svg
Normal file
576
mea/ui/images/rpi-setup.svg
Normal file
@ -0,0 +1,576 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg4367"
|
||||
viewBox="0 0 899.99998 540.00001"
|
||||
version="1.1"
|
||||
sodipodi:docname="rpi-setup.svg"
|
||||
width="900"
|
||||
height="540"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)">
|
||||
<defs
|
||||
id="defs95" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2880"
|
||||
inkscape:window-height="1698"
|
||||
id="namedview93"
|
||||
showgrid="true"
|
||||
inkscape:zoom="1.8591095"
|
||||
inkscape:cx="432.56289"
|
||||
inkscape:cy="277.15708"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="44"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4367">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid1120" />
|
||||
</sodipodi:namedview>
|
||||
<g
|
||||
id="layer1"
|
||||
transform="translate(127.906,-194.67999)">
|
||||
<g
|
||||
id="g5001"
|
||||
style="stroke:#000000;stroke-linejoin:round">
|
||||
<path
|
||||
id="path4034"
|
||||
d="m 20.163,437.68 v -8 l 490,268 v 8 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2" />
|
||||
<path
|
||||
id="path4036"
|
||||
d="m 510.16,705.68 220,-243 v -8 l -220,243 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2" />
|
||||
<path
|
||||
id="path4032"
|
||||
d="m 20.163,429.68 239,-199 471,224 -220,243 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#009300;stroke-width:1.5" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g3876"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="stroke:#000000;stroke-linejoin:round">
|
||||
<path
|
||||
id="path3828"
|
||||
d="m -541.57,327.17 84.109,46.846 50.75,-48.975 -81.876,-43.817 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:1.5" />
|
||||
<path
|
||||
id="path3830"
|
||||
d="m -457.46,374.01 v 18.335 h -14.627 l -55.629,-30.425 -14.133,-15.73 0.27901,-19.025 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2" />
|
||||
<path
|
||||
id="path3832"
|
||||
d="m -457.46,392.35 50.671,-45.717 0.0781,-21.593 -50.75,48.975 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2" />
|
||||
<path
|
||||
id="path3834"
|
||||
d="m -534.52,337.09 69.763,39.148 -0.31695,11.94 -5.4548,0.35589 -53.452,-29.361 -10.791,-12.045 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1px" />
|
||||
</g>
|
||||
<g
|
||||
id="g3882"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-linejoin:bevel">
|
||||
<path
|
||||
id="path3862"
|
||||
d="m -454.46,246.5 67.003,35.383 v 9.536 l -67.254,-36.638 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5" />
|
||||
<path
|
||||
id="path3864"
|
||||
d="m -454.46,246.5 50.189,-46.425 65.246,34.129 -48.433,47.68 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path3866"
|
||||
d="m -387.46,291.42 48.362,-47.478 0.0705,-9.7378 -48.433,47.68 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5" />
|
||||
</g>
|
||||
<g
|
||||
id="g4024"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="fill:#ffffff;stroke:#000000">
|
||||
<path
|
||||
id="path3905"
|
||||
d="m -617.87,213.78 v 37.733 c -2.0806,10.749 -12.014,13.139 -22.003,13.308 -8.7698,0.14851 -21.733,-2.5784 -21.904,-14.581 0,0 -0.0993,-32.786 -0.0993,-36.461 0,-7.35 9.8512,-13.308 22.003,-13.308 12.1518,0 22.003,5.9584 22.003,13.308 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2" />
|
||||
<path
|
||||
id="path3905-7"
|
||||
transform="translate(-0.70978,-3.1062)"
|
||||
d="m -617.16,216.62 c 0,7.35 -9.8512,13.308 -22.003,13.308 -12.1518,0 -22.003,-5.9584 -22.003,-13.308 0,-7.35 9.8512,-13.308 22.003,-13.308 12.1518,0 22.003,5.9584 22.003,13.308 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5" />
|
||||
</g>
|
||||
<g
|
||||
id="g3958"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="fill:#ffffff;stroke:#000000">
|
||||
<path
|
||||
id="path3932"
|
||||
d="m -618.33,265.07 23.883,-20.884 33.082,16.116 -23.338,21.33 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path3934"
|
||||
d="m -584.71,281.63 0.19831,8.4449 23.068,-20.406 0.0717,-9.369 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path3936"
|
||||
d="m -584.71,281.63 0.19831,8.4449 -33.892,-15.97 0.067,-9.0372 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path3938"
|
||||
d="m -614.07,271.47 -0.54646,1.2119 -0.20199,3.1152 -4.2705,3.4522 2.133,1.0038 3.6387,-2.9486 0.75517,-0.44408 0.24862,-4.3866 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1px" />
|
||||
<path
|
||||
id="path3938-4"
|
||||
d="m -592.31,282.22 -0.54646,1.2119 -0.20199,3.1152 -4.2705,3.4522 2.133,1.0038 3.6387,-2.9486 0.75517,-0.44408 0.24862,-4.3866 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1px" />
|
||||
</g>
|
||||
<g
|
||||
id="g4267"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="fill:#ffffff;stroke:#000000">
|
||||
<path
|
||||
id="path3965"
|
||||
d="m -325.91,122.37 v 60.897 l 59.909,27.102 v -59.508 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path3967"
|
||||
d="m -231.12,112.75 -34.882,38.11 v 59.508 l 34.882,-33.125 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path3969"
|
||||
d="m -231.12,112.75 -58.22,-27.855 -36.57,37.474 59.909,28.492 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path3971"
|
||||
d="m -265.21,96.44 15.693,-14.825 c 11.538,-10.9 28.855,4.0906 28.482,15.064 0,0 0.12471,1.9525 -1.0127,5.071 -2.0733,5.6845 -5.923,7.6928 -9.0782,10.997 l -8.6194,-4.124 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5" />
|
||||
</g>
|
||||
<g
|
||||
id="g4019"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="fill:none;stroke:#000000;stroke-linejoin:round">
|
||||
<path
|
||||
id="path3981"
|
||||
transform="matrix(0.97538,-0.22729,0.19766,0.87076,-54.998,-79.909)"
|
||||
d="m -438.25,189.82 c 0,13.252 -14.638,23.995 -32.694,23.995 -18.056,0 -32.694,-10.743 -32.694,-23.995 0,-13.252 14.638,-23.995 32.694,-23.995 18.056,0 32.694,10.743 32.694,23.995 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5862" />
|
||||
<path
|
||||
id="path3981-0"
|
||||
transform="matrix(-0.31948,-0.29595,0.24041,-0.23168,-656.53,66.794)"
|
||||
d="m -438.25,189.82 c 0,13.252 -14.638,23.995 -32.694,23.995 -18.056,0 -32.694,-10.743 -32.694,-23.995 0,-13.252 14.638,-23.995 32.694,-23.995 18.056,0 32.694,10.743 32.694,23.995 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2.62459993" />
|
||||
<path
|
||||
id="path3981-0-9"
|
||||
transform="matrix(-0.45332,0.01564,0.0058521,-0.28195,-650.87,234.53)"
|
||||
d="m -438.25,189.82 c 0,13.252 -14.638,23.995 -32.694,23.995 -18.056,0 -32.694,-10.743 -32.694,-23.995 0,-13.252 14.638,-23.995 32.694,-23.995 18.056,0 32.694,10.743 32.694,23.995 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2.79809999" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linejoin:round"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 160.09,206.83001 v 18.454 l 26.972,15.26 v -18.454 z"
|
||||
id="path4028" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1.5;stroke-linejoin:round"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 160.09,206.83001 31.408,-25.907 25.907,15.26 -30.343,25.907 z"
|
||||
id="path4030" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linejoin:round"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 187.061,240.54001 30.698,-24.842 -0.35488,-19.519 -30.343,25.907 z"
|
||||
id="path4033" />
|
||||
<g
|
||||
id="g4182"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="stroke:#000000">
|
||||
<path
|
||||
id="path4035"
|
||||
d="m -598.76,175.23 v 32.121 l 9.0341,5.3954 0.13718,-30.529 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path4039"
|
||||
d="m -589.72,212.75 88.584,-74.657 0.75284,-28.859 -89.2,72.987 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path4041"
|
||||
d="m -599.26,177.23 v 7.1365 l 9.1419,6.3882 89.034,-72.043 0.19514,-7.4802 -9.536,-7.0265 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1px" />
|
||||
<path
|
||||
id="path4037"
|
||||
d="m -598.76,175.23 88.835,-73.025 9.536,7.0265 -89.2,72.987 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:1.5;stroke-linejoin:round" />
|
||||
</g>
|
||||
<g
|
||||
id="g4188"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-linejoin:round">
|
||||
<path
|
||||
id="path4043"
|
||||
d="m -512.36,65.679 165.99,79.073 0.35489,-23.778 -166.09,-77.366 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2" />
|
||||
<path
|
||||
id="path4045"
|
||||
d="m -512.11,43.607 15.737,-11.915 166.13,77.041 -15.774,12.241 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5" />
|
||||
<path
|
||||
id="path4047"
|
||||
d="m -330.25,108.73 v 23.338 l -16.129,12.681 0.35489,-23.778 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2" />
|
||||
<path
|
||||
id="path4051"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-99.472,126.95)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-104.68,131.09)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-8"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-87.026,132.8)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-8"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-92.234,136.94)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-2"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-75.026,138.8)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-4"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-80.234,142.94)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-5"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-61.026,144.8)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-5"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-66.234,148.94)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-1"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-47.026,150.8)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-7"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-52.234,154.94)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-11"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-34.498,156.33)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-52"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-39.705,160.47)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-7"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-22.498,162.33)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-6"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-27.705,166.47)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-14"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-10.498,168.33)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-2"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-15.705,172.47)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-3"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,1.5019,174.33)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-22"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,-3.7052,178.47)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-16"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,13.502,180.33)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-85"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,8.2948,184.47)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-76"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,27.502,186.33)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-1"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,22.295,190.47)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-89"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,41.502,192.33)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path4051-4-27"
|
||||
transform="matrix(0.77333,0.23576,-0.27228,0.66959,36.295,196.47)"
|
||||
d="m -488.07,43.487 c 0,1.1088 -1.4721,2.0076 -3.288,2.0076 -1.8159,0 -3.288,-0.89882 -3.288,-2.0076 0,-1.10878 1.4721,-2.0076 3.288,-2.0076 1.8159,0 3.288,0.89882 3.288,2.0076 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g4251"
|
||||
transform="translate(884.066,-4.99999)">
|
||||
<g
|
||||
id="g4257"
|
||||
style="fill:#ffffff;stroke:#000000">
|
||||
<path
|
||||
id="path4217"
|
||||
d="m -224.85,185.27 70.767,34.129 0.37642,39.148 -71.018,-33.878 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path4219"
|
||||
d="m -224.85,185.27 40.151,-37.391 69.763,34.631 -39.148,36.889 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path4221"
|
||||
d="m -153.7,258.55 38.775,-35.841 -0.004,-40.195 -39.148,36.889 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:2;stroke-linejoin:round" />
|
||||
<path
|
||||
id="path3971-9"
|
||||
d="m -161.99,159.15 11.376,-10.37 c 11.73,-10.693 28.855,4.0906 28.482,15.064 0,0 0.12471,1.9525 -1.0127,5.071 -2.0733,5.6846 -1.923,3.6928 -5.0782,6.9972 l -8.6194,-4.124 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.5" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g3898"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="stroke:#000000;stroke-linejoin:round">
|
||||
<path
|
||||
id="path3785"
|
||||
d="m -102.39,408.61 v -75.284 l -103.39,-49.687 v 72.774 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2" />
|
||||
<path
|
||||
id="path3787"
|
||||
d="m -205.78,283.64 53.201,-53.201 101.28,47.342 -51.094,55.546 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:1.5" />
|
||||
<path
|
||||
id="path3789"
|
||||
d="m -102.39,408.61 51.282,-57.848 -0.18798,-72.982 -51.094,55.546 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2" />
|
||||
<path
|
||||
id="path3791"
|
||||
d="m -96.885,357.51 0.34451,-14.594 40.191,-44.392 v 14.447 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1px" />
|
||||
<path
|
||||
id="path3791-1"
|
||||
d="m -96.873,388.64 0.34451,-14.594 40.191,-44.392 v 14.447 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1px" />
|
||||
</g>
|
||||
<g
|
||||
id="g3887"
|
||||
transform="translate(884.066,-4.99999)"
|
||||
style="stroke:#000000;stroke-linejoin:round">
|
||||
<path
|
||||
id="path3003"
|
||||
d="m -366.7,354.66 69.559,-67.429 128.47,63.171 -67.429,73.818 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:1.5" />
|
||||
<path
|
||||
id="path3005"
|
||||
d="m -366.62,423.7 -0.0819,-69.046 130.6,69.559 v 71.76 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2" />
|
||||
<path
|
||||
id="path3007"
|
||||
d="m -236.1,495.97 67.729,-74.782 -0.2999,-70.795 -67.429,73.818 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;stroke-width:2" />
|
||||
<path
|
||||
id="path3009"
|
||||
d="m -228.35,430.48 v 35.383 l 13.049,-14.555 v 10.364 l 5.1819,-5.1819 v 10.796 l 20.568,-22.71 -0.26187,-11.058 3.1438,-3.4724 v -9.1032 l 9.2687,-9.5435 -0.25095,-34.631 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1px" />
|
||||
</g>
|
||||
<metadata
|
||||
id="metadata90">
|
||||
<rdf:RDF>
|
||||
<cc:Work>
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
<dc:publisher>
|
||||
<cc:Agent
|
||||
rdf:about="http://openclipart.org/">
|
||||
<dc:title>Openclipart</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:title>looks like raspberry pi printed circuit board</dc:title>
|
||||
<dc:date>2013-10-11T20:32:48</dc:date>
|
||||
<dc:description>Any similarity to Raspberry pi is not intended ;-)</dc:description>
|
||||
<dc:source>https://openclipart.org/detail/184791/looks-like-raspberry-pi-printed-circuit-board-by-mawoki-184791</dc:source>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>mawoki</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>electronic components</rdf:li>
|
||||
<rdf:li>pcb</rdf:li>
|
||||
<rdf:li>pi</rdf:li>
|
||||
<rdf:li>printed circuit board</rdf:li>
|
||||
<rdf:li>raspberry</rdf:li>
|
||||
<rdf:li>raspberry pi</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 71.362293,154.55744 v 20.11235 l 29.395817,16.63133 v -20.11235 z"
|
||||
id="path1073" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 71.362293,154.55744 34.230447,-28.2351 28.23511,16.63132 -33.06975,28.23511 z"
|
||||
id="path1075" />
|
||||
<path
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 100.75701,191.29676 33.45665,-27.0744 -0.38677,-21.27306 -33.06974,28.23511 z"
|
||||
id="path1077" />
|
||||
<g
|
||||
transform="matrix(0.82337087,0,0,0.82337087,78.497797,-159.13812)"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:2.429039;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="g1071">
|
||||
<path
|
||||
style="stroke-width:2.429039;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 32.184,401.51 v 18.454 l 26.972,15.26 V 416.77 Z"
|
||||
id="path1065" />
|
||||
<path
|
||||
style="stroke-width:2.429039;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 32.184,401.51 31.408,-25.907 25.907,15.26 -30.343,25.907 z"
|
||||
id="path1067" />
|
||||
<path
|
||||
style="stroke-width:2.429039;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 59.155,435.22 30.698,-24.842 -0.35488,-19.519 -30.343,25.907 z"
|
||||
id="path1069" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 78.10823,148.654 C -19.25021,106.42948 45.83471,52.1024 45.83471,52.1024 v 0"
|
||||
id="path1083"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 89.672906,138.97194 C 4.14809,104.00897 56.8615,60.97761 56.8615,60.97761"
|
||||
id="path1085"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<g
|
||||
id="g1132"
|
||||
transform="rotate(29.176396,-414.96256,605.35757)">
|
||||
<rect
|
||||
y="12.769989"
|
||||
x="-195"
|
||||
height="10"
|
||||
width="55"
|
||||
id="rect1125"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.39999998;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="rect1127"
|
||||
d="m -140,3.769989 25,14.5 -25,14.5 z"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.39999998;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 26 KiB |
@ -33,7 +33,7 @@ Page {
|
||||
})
|
||||
d.editRulePage.onAccept.connect(function() {
|
||||
d.editRulePage.busy = true;
|
||||
Engine.ruleManager.addRule(page.rule);
|
||||
Engine.ruleManager.addRule(d.editRulePage.rule);
|
||||
})
|
||||
d.editRulePage.onCancel.connect(function() {
|
||||
pageStack.pop();
|
||||
@ -87,23 +87,14 @@ Page {
|
||||
filterDeviceId: root.device.id
|
||||
}
|
||||
|
||||
delegate: SwipeDelegate {
|
||||
delegate: MeaListItemDelegate {
|
||||
width: parent.width
|
||||
contentItem: RowLayout {
|
||||
spacing: app.margins
|
||||
ColorIcon {
|
||||
height: app.iconSize
|
||||
width: height
|
||||
name: "../images/magic.svg"
|
||||
color: !model.enabled ? "red" : (model.active ? app.guhAccent : "grey")
|
||||
}
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: model.name
|
||||
}
|
||||
}
|
||||
iconName: "../images/magic.svg"
|
||||
iconColor: !model.enabled ? "red" : (model.active ? app.guhAccent : "grey")
|
||||
text: model.name
|
||||
canDelete: true
|
||||
|
||||
onDeleteClicked: Engine.ruleManager.removeRule(model.id)
|
||||
onClicked: {
|
||||
d.editRulePage = pageStack.push(Qt.resolvedUrl("EditRulePage.qml"), {rule: rulesFilterModel.get(index).clone() })
|
||||
d.editRulePage.StackView.onRemoved.connect(function() {
|
||||
@ -118,19 +109,6 @@ Page {
|
||||
})
|
||||
}
|
||||
|
||||
swipe.right: Item {
|
||||
height: ruleDelegate.height
|
||||
width: height
|
||||
anchors.right: parent.right
|
||||
ColorIcon {
|
||||
anchors.fill: parent
|
||||
anchors.margins: app.margins
|
||||
name: "../images/delete.svg"
|
||||
color: "red"
|
||||
}
|
||||
SwipeDelegate.onClicked: Engine.ruleManager.removeRule(model.id)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -146,6 +124,7 @@ Page {
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
text: qsTr("There's no magic involving %1.").arg(root.device.name)
|
||||
font.pixelSize: app.largeFont
|
||||
color: app.guhAccent
|
||||
}
|
||||
Label {
|
||||
width: parent.width
|
||||
|
||||
Reference in New Issue
Block a user