loads of more work

This commit is contained in:
Michael Zanetti 2017-11-06 21:55:35 +01:00
parent 6de33ca718
commit 509ce837e4
111 changed files with 5267 additions and 533 deletions

View File

@ -1,6 +1,6 @@
TEMPLATE=subdirs
SUBDIRS += libguh-common guh-control
SUBDIRS = libguh-common guh-control
libguh-common.subdir = libguh-common
guh-control.subdir = guh-control

View File

@ -46,13 +46,16 @@ QVariant DeviceClasses::data(const QModelIndex &index, int role) const
return QVariant();
DeviceClass *deviceClass = m_deviceClasses.at(index.row());
if (role == NameRole) {
return deviceClass->name();
} else if (role == IdRole) {
switch (role) {
case RoleId:
return deviceClass->id().toString();
} else if (role == PluginIdRole) {
case RoleName:
return deviceClass->name();
case RoleDisplayName:
return deviceClass->displayName();
case RolePluginId:
return deviceClass->pluginId().toString();
} else if (role == VendorIdRole) {
case RoleVendorId:
return deviceClass->vendorId().toString();
}
return QVariant();
@ -98,9 +101,10 @@ void DeviceClasses::clearModel()
QHash<int, QByteArray> DeviceClasses::roleNames() const
{
QHash<int, QByteArray> roles;
roles[NameRole] = "name";
roles[IdRole] = "id";
roles[PluginIdRole] = "pluginId";
roles[VendorIdRole] = "vendorId";
roles[RoleId] = "id";
roles[RoleName] = "name";
roles[RoleDisplayName] = "displayName";
roles[RolePluginId] = "pluginId";
roles[RoleVendorId] = "vendorId";
return roles;
}

View File

@ -31,11 +31,12 @@ class DeviceClasses : public QAbstractListModel
{
Q_OBJECT
public:
enum DeviceClassRole {
NameRole = Qt::DisplayRole,
IdRole,
PluginIdRole,
VendorIdRole
enum Role {
RoleId,
RoleName,
RoleDisplayName,
RolePluginId,
RoleVendorId
};
explicit DeviceClasses(QObject *parent = 0);

View File

@ -43,7 +43,7 @@ void DeviceDiscovery::discoverDevices(const QUuid &deviceClassId, const QVariant
if (!discoveryParams.isEmpty()) {
params.insert("discoveryParams", discoveryParams);
}
Engine::instance()->jsonRpcClient()->sendCommand("Devices.DiscoverDevices", params, this, "discoverDevicesResponse");
Engine::instance()->jsonRpcClient()->sendCommand("Devices.GetDiscoveredDevices", params, this, "discoverDevicesResponse");
m_busy = true;
emit busyChanged();
emit countChanged();
@ -60,8 +60,9 @@ void DeviceDiscovery::discoverDevicesResponse(const QVariantMap &params)
emit busyChanged();
qDebug() << "response received" << params;
QVariantList descriptors = params.value("deviceDescriptors").toList();
QVariantList descriptors = params.value("params").toMap().value("deviceDescriptors").toList();
foreach (const QVariant &descriptor, descriptors) {
qDebug() << "descriptor" << descriptor;
if (!contains(descriptor.toMap().value("id").toUuid())) {
beginInsertRows(QModelIndex(), m_foundDevices.count(), m_foundDevices.count());
m_foundDevices.append(DeviceDescriptor(descriptor.toMap().value("id").toUuid(),

View File

@ -71,11 +71,12 @@ DeviceClasses *DeviceManager::deviceClasses() const
return m_deviceClasses;
}
void DeviceManager::addDevice(const QUuid &deviceClassId, const QVariantList &deviceParams)
void DeviceManager::addDevice(const QUuid &deviceClassId, const QString &name, const QVariantList &deviceParams)
{
qDebug() << "add device " << deviceClassId.toString();
QVariantMap params;
params.insert("deviceClassId", deviceClassId.toString());
params.insert("name", name);
params.insert("deviceParams", deviceParams);
m_jsonClient->sendCommand("Devices.AddConfiguredDevice", params, this, "addDeviceResponse");
}
@ -97,12 +98,13 @@ void DeviceManager::notificationReceived(const QVariantMap &data)
void DeviceManager::getVendorsResponse(const QVariantMap &params)
{
qDebug() << "Got GetSupportedVendors response";
qDebug() << "Got GetSupportedVendors response" << params;
if (params.value("params").toMap().keys().contains("vendors")) {
QVariantList vendorList = params.value("params").toMap().value("vendors").toList();
foreach (QVariant vendorVariant, vendorList) {
Vendor *vendor = JsonTypes::unpackVendor(vendorVariant.toMap(), Engine::instance()->deviceManager()->vendors());
m_vendors->addVendor(vendor);
qDebug() << "Added Vendor:" << vendor->name();
}
}
@ -134,7 +136,7 @@ void DeviceManager::getPluginsResponse(const QVariantMap &params)
m_plugins->addPlugin(plugin);
}
}
m_jsonClient->sendCommand("Devices.GetVendors", this, "getVendorsResponse");
m_jsonClient->sendCommand("Devices.GetSupportedVendors", this, "getVendorsResponse");
}
void DeviceManager::getConfiguredDevicesResponse(const QVariantMap &params)
@ -144,29 +146,45 @@ void DeviceManager::getConfiguredDevicesResponse(const QVariantMap &params)
foreach (QVariant deviceVariant, deviceList) {
Device *device = JsonTypes::unpackDevice(deviceVariant.toMap(), Engine::instance()->deviceManager()->devices());
if (!device) continue;
Engine::instance()->deviceManager()->devices()->addDevice(device);
//qDebug() << QJsonDocument::fromVariant(deviceVariant).toJson();
// qDebug() << QJsonDocument::fromVariant(deviceVariant).toJson();
DeviceClass *dc = m_deviceClasses->getDeviceClass(device->deviceClassId());
if (!dc) {
qWarning() << "Can't find a deviceClass for this device" << device->name();
continue;
}
// set initial state values
QVariantList stateVariantList = deviceVariant.toMap().value("states").toList();
foreach (const QVariant &stateMap, stateVariantList) {
QUuid stateTypeId = stateMap.toMap().value("stateTypeId").toUuid();
StateType *st = dc->stateTypes()->getStateType(stateTypeId);
if (!st) {
qWarning() << "Can't find a statetype for this state";
continue;
}
QVariant value = stateMap.toMap().value("value");
if (st->type() == "Bool") {
value.convert(QVariant::Bool);
}
device->setStateValue(stateTypeId, value);
}
Engine::instance()->deviceManager()->devices()->addDevice(device);
}
}
}
void DeviceManager::addDeviceResponse(const QVariantMap &params)
{
if (params.value("params").toMap().keys().contains("device")) {
if (params.value("params").toMap().value("deviceError").toString() != "DeviceErrorNoError") {
qWarning() << "Failed to add the device:" << params.value("params").toMap().value("deviceError").toString();
} else if (params.value("params").toMap().keys().contains("device")) {
QVariantMap deviceVariant = params.value("params").toMap().value("device").toMap();
Device *device = JsonTypes::unpackDevice(deviceVariant, m_devices);
qDebug() << "Device added" << device->id().toString();
m_devices->addDevice(device);
}
emit addDeviceReply(params.value("params").toMap());
}
void DeviceManager::removeDeviceResponse(const QVariantMap &params)
@ -178,6 +196,16 @@ void DeviceManager::removeDeviceResponse(const QVariantMap &params)
device->deleteLater();
}
void DeviceManager::pairDeviceResponse(const QVariantMap &params)
{
emit pairDeviceReply(params.value("params").toMap());
}
void DeviceManager::confirmPairintResponse(const QVariantMap &params)
{
emit confirmPairingReply(params.value("params").toMap());
}
void DeviceManager::addDiscoveredDevice(const QUuid &deviceClassId, const QUuid &deviceDescriptorId, const QString &name)
{
qDebug() << "JsonRpc: add discovered device " << deviceClassId.toString();
@ -195,7 +223,7 @@ void DeviceManager::pairDevice(const QUuid &deviceClassId, const QUuid &deviceDe
params.insert("name", "name");
params.insert("deviceClassId", deviceClassId.toString());
params.insert("deviceDescriptorId", deviceDescriptorId.toString());
m_jsonClient->sendCommand("Devices.PairDevice", params);
m_jsonClient->sendCommand("Devices.PairDevice", params, this, "pairDeviceResponse");
}
void DeviceManager::confirmPairing(const QUuid &pairingTransactionId, const QString &secret)
@ -204,7 +232,7 @@ void DeviceManager::confirmPairing(const QUuid &pairingTransactionId, const QStr
QVariantMap params;
params.insert("pairingTransactionId", pairingTransactionId.toString());
params.insert("secret", secret);
m_jsonClient->sendCommand("Devices.ConfirmPairing", params);
m_jsonClient->sendCommand("Devices.ConfirmPairing", params, this, "confirmPairingResponse");
}
void DeviceManager::removeDevice(const QUuid &deviceId)

View File

@ -51,7 +51,7 @@ public:
Devices *devices() const;
DeviceClasses *deviceClasses() const;
Q_INVOKABLE void addDevice(const QUuid &deviceClassId, const QVariantList &deviceParams);
Q_INVOKABLE void addDevice(const QUuid &deviceClassId, const QString &name, const QVariantList &deviceParams);
Q_INVOKABLE void addDiscoveredDevice(const QUuid &deviceClassId, const QUuid &deviceDescriptorId, const QString &name);
Q_INVOKABLE void pairDevice(const QUuid &deviceClassId, const QUuid &deviceDescriptorId);
Q_INVOKABLE void confirmPairing(const QUuid &pairingTransactionId, const QString &secret = QString());
@ -66,8 +66,13 @@ private:
Q_INVOKABLE void getConfiguredDevicesResponse(const QVariantMap &params);
Q_INVOKABLE void addDeviceResponse(const QVariantMap &params);
Q_INVOKABLE void removeDeviceResponse(const QVariantMap &params);
Q_INVOKABLE void pairDeviceResponse(const QVariantMap &params);
Q_INVOKABLE void confirmPairintResponse(const QVariantMap &params);
signals:
void pairDeviceReply(const QVariantMap &params);
void confirmPairingReply(const QVariantMap &params);
void addDeviceReply(const QVariantMap &params);
private:
Vendors *m_vendors;

View File

@ -36,6 +36,10 @@ void GuhConnection::connect(const QString &url)
void GuhConnection::disconnect()
{
if (!m_currentInterface || !m_currentInterface->isConnected()) {
qWarning() << "not connected, cannot disconnect";
return;
}
m_currentInterface->disconnect();
}

View File

@ -28,6 +28,7 @@
#include <QDebug>
#include <QUuid>
#include <QSettings>
#include <QVersionNumber>
JsonRpcClient::JsonRpcClient(GuhConnection *connection, QObject *parent) :
JsonHandler(parent),
@ -202,6 +203,11 @@ void JsonRpcClient::dataReceived(const QByteArray &data)
m_authenticationRequired = dataMap.value("authenticationRequired").toBool();
m_serverUuid = dataMap.value("uuid").toString();
QString protoVersionString = dataMap.value("protocol version").toString();
if (!protoVersionString.contains('.')) {
protoVersionString.prepend("0.");
}
if (m_initialSetupRequired) {
emit initialSetupRequiredChanged();
} else if (m_authenticationRequired) {
@ -218,13 +224,20 @@ void JsonRpcClient::dataReceived(const QByteArray &data)
m_connected = true;
emit connectedChanged(true);
QVersionNumber minimumRequiredVersion = QVersionNumber(1, 0);
QVersionNumber protocolVersion = QVersionNumber::fromString(protoVersionString);
if (protocolVersion < minimumRequiredVersion) {
m_connection->disconnect();
emit invalidProtocolVersion(protocolVersion.toString(), minimumRequiredVersion.toString());
}
}
// check if this is a reply to a request
int commandId = dataMap.value("id").toInt();
JsonRpcReply *reply = m_replies.take(commandId);
if (reply) {
qDebug() << QString("JsonRpc: got response for %1.%2").arg(reply->nameSpace(), reply->method()) << reply->callback() << reply->callback();
// qDebug() << QString("JsonRpc: got response for %1.%2: %3").arg(reply->nameSpace(), reply->method(), QString::fromUtf8(jsonDoc.toJson(QJsonDocument::Indented))) << reply->callback() << reply->callback();
if (reply->caller() != nullptr && !reply->callback().isEmpty()) {
QMetaObject::invokeMethod(reply->caller(), reply->callback().toLatin1().data(), Q_ARG(QVariantMap, dataMap));

View File

@ -66,6 +66,7 @@ signals:
void authenticationRequiredChanged();
void connectedChanged(bool connected);
void tokenChanged();
void invalidProtocolVersion(const QString &actualVersion, const QString &minimumVersion);
void responseReceived(const int &commandId, const QVariantMap &response);

View File

@ -34,7 +34,9 @@ JsonTypes::JsonTypes(QObject *parent) :
Vendor *JsonTypes::unpackVendor(const QVariantMap &vendorMap, QObject *parent)
{
return new Vendor(vendorMap.value("id").toUuid(), vendorMap.value("name").toString(), parent);
Vendor *v = new Vendor(vendorMap.value("id").toUuid(), vendorMap.value("name").toString(), parent);
v->setDisplayName(vendorMap.value("displayName").toString());
return v;
}
Plugin *JsonTypes::unpackPlugin(const QVariantMap &pluginMap, QObject *parent)
@ -54,6 +56,7 @@ DeviceClass *JsonTypes::unpackDeviceClass(const QVariantMap &deviceClassMap, QOb
{
DeviceClass *deviceClass = new DeviceClass(parent);
deviceClass->setName(deviceClassMap.value("name").toString());
deviceClass->setDisplayName(deviceClassMap.value("displayName").toString());
deviceClass->setId(deviceClassMap.value("id").toUuid());
deviceClass->setVendorId(deviceClassMap.value("vendorId").toUuid());
QVariantList createMethodsList = deviceClassMap.value("createMethods").toList();
@ -133,6 +136,7 @@ StateType *JsonTypes::unpackStateType(const QVariantMap &stateTypeMap, QObject *
StateType *stateType = new StateType(parent);
stateType->setId(stateTypeMap.value("id").toUuid());
stateType->setName(stateTypeMap.value("name").toString());
stateType->setDisplayName(stateTypeMap.value("displayName").toString());
stateType->setIndex(stateTypeMap.value("index").toInt());
stateType->setDefaultValue(stateTypeMap.value("defaultValue"));
stateType->setType(stateTypeMap.value("type").toString());

View File

@ -40,6 +40,8 @@
#include "types/ruleactionparams.h"
#include "types/ruleactionparam.h"
#include "types/rule.h"
#include "models/logsmodel.h"
#include "models/valuelogsproxymodel.h"
int main(int argc, char *argv[])
{
@ -104,6 +106,10 @@ int main(int argc, char *argv[])
qmlRegisterType<UpnpDiscovery>(uri, 1, 0, "UpnpDiscovery");
qmlRegisterType<ZeroconfDiscovery>(uri, 1, 0, "ZeroconfDiscovery");
qmlRegisterType<LogsModel>(uri, 1, 0, "LogsModel");
qmlRegisterType<ValueLogsProxyModel>(uri, 1, 0, "ValueLogsProxyModel");
qmlRegisterUncreatableType<LogEntry>(uri, 1, 0, "LogEntry", "Get them from LogsModel");
Engine::instance();
QQmlApplicationEngine engine;

View File

@ -0,0 +1,134 @@
#include "logsmodel.h"
#include "engine.h"
LogsModel::LogsModel(QObject *parent) : QAbstractListModel(parent)
{
}
bool LogsModel::busy() const
{
return m_busy;
}
int LogsModel::rowCount(const QModelIndex &parent) const
{
return m_list.count();
}
QVariant LogsModel::data(const QModelIndex &index, int role) const
{
return QVariant();
}
QHash<int, QByteArray> LogsModel::roleNames() const
{
QHash<int, QByteArray> roles;
roles.insert(RoleValue, "value");
return roles;
}
QString LogsModel::deviceId() const
{
return m_deviceId;
}
void LogsModel::setDeviceId(const QString &deviceId)
{
if (m_deviceId != deviceId) {
m_deviceId = deviceId;
emit deviceIdChanged();
}
}
QString LogsModel::typeId() const
{
return m_typeId;
}
void LogsModel::setTypeId(const QString &typeId)
{
if (m_typeId != typeId) {
m_typeId = typeId;
emit typeIdChanged();
}
}
QDateTime LogsModel::startTime() const
{
return m_startTime;
}
void LogsModel::setStartTime(const QDateTime &startTime)
{
if (m_startTime != startTime) {
m_startTime = startTime;
emit startTimeChanged();
}
}
QDateTime LogsModel::endTime() const
{
return m_endTime;
}
void LogsModel::setEndTime(const QDateTime &endTime)
{
if (m_endTime != endTime) {
m_endTime = endTime;
emit endTimeChanged();
}
}
LogEntry *LogsModel::get(int index) const
{
if (index >= 0 && index < m_list.count()) {
return m_list.at(index);
}
return nullptr;
}
void LogsModel::update()
{
m_busy = true;
emit busyChanged();
QVariantMap params;
if (!m_deviceId.isEmpty()) {
QVariantList deviceIds;
deviceIds.append(m_deviceId);
params.insert("deviceIds", deviceIds);
}
if (!m_typeId.isEmpty()) {
QVariantList typeIds;
typeIds.append(m_typeId);
params.insert("typeIds", typeIds);
}
QVariantList timeFilters;
QVariantMap timeFilter;
timeFilter.insert("startDate", m_startTime.toSecsSinceEpoch());
timeFilter.insert("endDate", m_endTime.toSecsSinceEpoch());
timeFilters.append(timeFilter);
params.insert("timeFilters", timeFilters);
Engine::instance()->jsonRpcClient()->sendCommand("Logging.GetLogEntries", params, this, "logsReply");
}
void LogsModel::logsReply(const QVariantMap &data)
{
m_busy = false;
emit busyChanged();
beginResetModel();
qDeleteAll(m_list);
m_list.clear();
QList<QVariant> logEntries = data.value("params").toMap().value("logEntries").toList();
foreach (const QVariant &logEntryVariant, logEntries) {
LogEntry *entry = new LogEntry(QDateTime::fromMSecsSinceEpoch(logEntryVariant.toMap().value("timestamp").toLongLong()), logEntryVariant.toMap().value("value"), this);
m_list.append(entry);
qDebug() << "Added log entry" << entry->dayString() << QDateTime::fromMSecsSinceEpoch(logEntryVariant.toMap().value("timestamp").toLongLong()).date().dayOfWeek();
}
endResetModel();
emit countChanged();
}

View File

@ -0,0 +1,67 @@
#ifndef LOGSMODEL_H
#define LOGSMODEL_H
#include <QAbstractListModel>
#include "types/logentry.h"
class LogsModel : public QAbstractListModel
{
Q_OBJECT
Q_PROPERTY(bool busy READ busy NOTIFY busyChanged)
Q_PROPERTY(int count READ rowCount NOTIFY countChanged)
Q_PROPERTY(QString deviceId READ deviceId WRITE setDeviceId NOTIFY deviceIdChanged)
Q_PROPERTY(QString typeId READ typeId WRITE setTypeId NOTIFY typeIdChanged)
Q_PROPERTY(QDateTime startTime READ startTime WRITE setStartTime NOTIFY startTimeChanged)
Q_PROPERTY(QDateTime endTime READ endTime WRITE setEndTime NOTIFY endTimeChanged)
public:
enum Roles {
RoleValue
};
explicit LogsModel(QObject *parent = nullptr);
bool busy() const;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role) const override;
QHash<int, QByteArray> roleNames() const override;
QString deviceId() const;
void setDeviceId(const QString &deviceId);
QString typeId() const;
void setTypeId(const QString &typeId);
QDateTime startTime() const;
void setStartTime(const QDateTime &startTime);
QDateTime endTime() const;
void setEndTime(const QDateTime &endTime);
Q_INVOKABLE LogEntry* get(int index) const;
signals:
void busyChanged();
void countChanged();
void deviceIdChanged();
void typeIdChanged();
void startTimeChanged();
void endTimeChanged();
public slots:
virtual void update();
private slots:
virtual void logsReply(const QVariantMap &data);
protected:
QList<LogEntry*> m_list;
QString m_deviceId;
QString m_typeId;
QDateTime m_startTime = QDateTime::currentDateTime().addDays(-1);
QDateTime m_endTime = QDateTime::currentDateTime();
bool m_busy = false;
};
#endif // LOGSMODEL_H

View File

@ -0,0 +1,136 @@
#include "valuelogsproxymodel.h"
#include <QDebug>
ValueLogsProxyModel::ValueLogsProxyModel(QObject *parent) : LogsModel(parent)
{
}
void ValueLogsProxyModel::update()
{
// modify starttime to add a day earlier so we have more chances to have meaningful data right from the start
m_startTime = m_startTime.addDays(-1);
LogsModel::update();
m_startTime = m_startTime.addDays(1);
}
ValueLogsProxyModel::Average ValueLogsProxyModel::average() const
{
return m_average;
}
void ValueLogsProxyModel::setAverage(ValueLogsProxyModel::Average average)
{
if (m_average != average) {
m_average = average;
emit averageChanged();
}
}
QVariant ValueLogsProxyModel::minimumValue() const
{
return m_minimumValue;
}
QVariant ValueLogsProxyModel::maximumValue() const
{
return m_maximumValue;
}
void ValueLogsProxyModel::logsReply(const QVariantMap &data)
{
m_busy = false;
emit busyChanged();
qDebug() << "logs reply";
beginResetModel();
m_minimumValue = QVariant();
m_maximumValue = QVariant();
int stepSize = 1;
switch (m_average) {
case AverageMonth:
stepSize *= 30;
case AverageDay:
stepSize *= 8;
case AverageDayTime:
stepSize *= 3;
case AverageHourly:
stepSize *= 4;
case AverageQuarterHour:
stepSize *= 15;
case AverageMinute:
stepSize *= 60;
}
int totalSlots = startTime().secsTo(endTime()) / stepSize;
qDebug() << "slots" << totalSlots;
QHash<int, QList<QVariant> > entries;
QList<QVariant> logEntries = data.value("params").toMap().value("logEntries").toList();
QVariant startValue;
for (int i = 0; i < logEntries.count(); i++) {
QVariantMap entryMap = logEntries.at(i).toMap();
QDateTime entryTimestamp = QDateTime::fromMSecsSinceEpoch(entryMap.value("timestamp").toLongLong());
int slot = startTime().secsTo(entryTimestamp) / stepSize;
if (slot < 0) {
// We're before the actual starttime (see update()). store the most recent value
startValue = entryMap.value("value");
// qDebug() << "have new startvalue" << startValue << entryTimestamp;
continue;
}
QList<QVariant> tmp = entries[slot];
tmp.append(entryMap.value("value"));
entries[slot] = tmp;
// qDebug() << "adding value to slot" << slot << entryMap.value("value") << QDateTime::fromMSecsSinceEpoch(entryMap.value("timestamp").toLongLong());
}
if (!startValue.isNull() && entries[0].isEmpty()) {
QList<QVariant> tmp;
tmp.append(startValue);
entries[0] = tmp;
}
// qDebug() << "slotsize:" << stepSize << entries.keys();
qDeleteAll(m_list);
m_list.clear();
for (int i = 0; i <= totalSlots; i++) {
QVariant avg = 0;
int counter = 0;
foreach (const QVariant &value, entries[i]) {
avg = avg.toDouble() + value.toDouble();
counter++;
}
if (counter > 0) {
avg = avg.toDouble() / counter;
} else if (entries[i-1].count() > 0) {
avg = entries[i-1].last();
} else if (m_list.count() > 0){
avg = m_list.last()->value();
} else {
continue;
}
LogEntry *entry = new LogEntry(startTime().addSecs(stepSize * i).addSecs(stepSize * .5), avg, this);
// qDebug() << "filling slot" << i << "average:" << avg << entry->timestamp();
m_list.append(entry);
if (m_minimumValue.isNull() || entry->value() < m_minimumValue) {
m_minimumValue = qRound(entry->value().toDouble());
}
if (m_maximumValue.isNull() || entry->value() > m_maximumValue) {
m_maximumValue = qRound(entry->value().toDouble());
}
}
endResetModel();
emit minimumValueChanged();
emit maximumValueChanged();
emit countChanged();
qDebug() << "min" << minimumValue() << "max" << maximumValue();
}

View File

@ -0,0 +1,53 @@
#ifndef VALUELOGSPROXYMODEL_H
#define VALUELOGSPROXYMODEL_H
#include <QAbstractListModel>
#include "logsmodel.h"
class ValueLogsProxyModel : public LogsModel
{
Q_OBJECT
Q_PROPERTY(Average average READ average WRITE setAverage NOTIFY averageChanged)
Q_PROPERTY(QVariant minimumValue READ minimumValue NOTIFY minimumValueChanged)
Q_PROPERTY(QVariant maximumValue READ maximumValue NOTIFY maximumValueChanged)
public:
enum Average {
AverageMonth,
AverageDay,
AverageDayTime,
AverageHourly,
AverageQuarterHour,
AverageMinute
};
Q_ENUM(Average)
explicit ValueLogsProxyModel(QObject *parent = nullptr);
void update() override;
Average average() const;
void setAverage(Average average);
QVariant minimumValue() const;
QVariant maximumValue() const;
signals:
void averageChanged();
void minimumValueChanged();
void maximumValueChanged();
protected:
void logsReply(const QVariantMap &data) override;
private:
Average m_average = AverageHourly;
QVariant m_minimumValue;
QVariant m_maximumValue;
};
#endif // VALUELOGSPROXYMODEL_H

View File

@ -14,31 +14,14 @@
<file>ui/images/back.svg</file>
<file>ui/images/close.svg</file>
<file>ui/MainPage.qml</file>
<file>ui/images/weathericons/weather-clear-night-symbolic.svg</file>
<file>ui/images/weathericons/weather-few-clouds-night-symbolic.svg</file>
<file>ui/images/weathericons/weather-few-clouds-symbolic.svg</file>
<file>ui/images/weathericons/weather-flurries-symbolic.svg</file>
<file>ui/images/weathericons/weather-fog-symbolic.svg</file>
<file>ui/images/weathericons/weather-hazy-symbolic.svg</file>
<file>ui/images/weathericons/weather-overcast-symbolic.svg</file>
<file>ui/images/weathericons/weather-severe-alert-symbolic.svg</file>
<file>ui/images/weathericons/weather-sleet-symbolic.svg</file>
<file>ui/images/weathericons/weather-snow-symbolic.svg</file>
<file>ui/images/weathericons/weather-chance-of-wind-symbolic.svg</file>
<file>ui/actiondelegates/ActionDelegateFallback.qml</file>
<file>ui/images/info.svg</file>
<file>ui/images/weathericons/weather-rain-symbolic.svg</file>
<file>ui/actiondelegates/ActionDelegateColor.qml</file>
<file>ui/components/ColorPicker.qml</file>
<file>ui/images/weathericons/weather-scattered-symbolic.svg</file>
<file>ui/actiondelegates/ActionDelegateNoParams.qml</file>
<file>ui/images/weathericons/weather-cloud-night-symbolic.svg</file>
<file>ui/images/weathericons/weather-cloud-symbolic.svg</file>
<file>ui/actiondelegates/ActionDelegateStringFromStringList.qml</file>
<file>ui/images/weathericons/weather-sun-symbolic.svg</file>
<file>ui/customviews/CustomViewBase.qml</file>
<file>ui/customviews/WeatherView.qml</file>
<file>ui/images/weathericons/weather-thunder-symbolic.svg</file>
<file>ui/customviews/MediaControllerView.qml</file>
<file>ui/LoginPage.qml</file>
<file>ui/customviews/SensorView.qml</file>
@ -58,5 +41,65 @@
<file>ui/magic/SelectActionPage.qml</file>
<file>ui/devicepages/GenericDeviceStateDetailsPage.qml</file>
<file>ui/images/delete.svg</file>
<file>ui/images/audio-speakers-muted-symbolic.svg</file>
<file>ui/images/audio-speakers-symbolic.svg</file>
<file>ui/images/media-playback-pause.svg</file>
<file>ui/images/media-playback-start.svg</file>
<file>ui/images/media-playback-stop.svg</file>
<file>ui/images/media-seek-backward.svg</file>
<file>ui/images/media-seek-forward.svg</file>
<file>ui/images/media-skip-backward.svg</file>
<file>ui/images/media-skip-forward.svg</file>
<file>ui/paramdelegates/BoolParamDelegate.qml</file>
<file>ui/components/ThinDivider.qml</file>
<file>ui/images/weather-app-symbolic.svg</file>
<file>ui/images/weathericons/weather-clear-day.svg</file>
<file>ui/images/weathericons/weather-clear-night.svg</file>
<file>ui/images/weathericons/weather-clouds.svg</file>
<file>ui/images/weathericons/weather-few-clouds-day.svg</file>
<file>ui/images/weathericons/weather-few-clouds-night.svg</file>
<file>ui/images/weathericons/weather-fog.svg</file>
<file>ui/images/weathericons/weather-light-rain.svg</file>
<file>ui/images/weathericons/weather-overcast.svg</file>
<file>ui/images/weathericons/weather-shower-rain.svg</file>
<file>ui/images/weathericons/weather-snow.svg</file>
<file>ui/images/weathericons/weather-thunderstorm.svg</file>
<file>ui/images/weathericons/humidity.svg</file>
<file>ui/images/weathericons/wind.svg</file>
<file>ui/devicepages/WeatherDevicePage.qml</file>
<file>ui/devicepages/ColorLightDevicePage.qml</file>
<file>ui/images/torch-off.svg</file>
<file>ui/components/ThrottledSlider.qml</file>
<file>ui/components/ColorPickerCt.qml</file>
<file>ui/images/navigation-menu.svg</file>
<file>ui/components/IconMenuItem.qml</file>
<file>ui/images/settings.svg</file>
<file>ui/images/stock_link.svg</file>
<file>ui/images/share.svg</file>
<file>ui/SystemInfoPage.qml</file>
<file>ui/devicepages/SensorDevicePage.qml</file>
<file>ui/components/Graph.qml</file>
<file>ui/images/sensors.svg</file>
<file>ui/images/temperature.svg</file>
<file>ui/images/network-wired-symbolic.svg</file>
<file>ui/paramdelegates/StringParamDelegate.qml</file>
<file>ui/paramdelegates/ParamDelegate.qml</file>
<file>ui/paramdelegates/ParamDelegateBase.qml</file>
<file>ui/images/notification.svg</file>
<file>ui/paramdelegates/IntParamDelegate.qml</file>
<file>ui/customviews/NotificationsView.qml</file>
<file>ui/devicepages/DevicePageBase.qml</file>
<file>ui/images/battery/battery-000.svg</file>
<file>ui/images/battery/battery-010.svg</file>
<file>ui/images/battery/battery-020.svg</file>
<file>ui/images/battery/battery-030.svg</file>
<file>ui/images/battery/battery-040.svg</file>
<file>ui/images/battery/battery-050.svg</file>
<file>ui/images/battery/battery-060.svg</file>
<file>ui/images/battery/battery-070.svg</file>
<file>ui/images/battery/battery-080.svg</file>
<file>ui/images/battery/battery-090.svg</file>
<file>ui/images/battery/battery-100.svg</file>
<file>ui/images/dialog-warning-symbolic.svg</file>
</qresource>
</RCC>

View File

@ -99,7 +99,7 @@ void RuleManager::getRuleDetailsReply(const QVariantMap &params)
qDebug() << "Got rule details for a rule we don't know";
return;
}
qDebug() << "got rule details for rule" << ruleMap;
// qDebug() << "got rule details for rule" << ruleMap;
parseEventDescriptors(ruleMap.value("eventDescriptors").toList(), rule);
parseRuleActions(ruleMap.value("actions").toList(), rule);
}

View File

@ -1,142 +1,61 @@
import QtQuick 2.5
import QtQuick 2.8
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.1
import QtQuick.Controls.Material 2.1
import Guh 1.0
import "components"
Page {
id: root
GridView {
id: interfacesGridView
header: GuhHeader {
text: "My things"
backButtonVisible: false
property alias shownInterfaces: interfacesModel.shownInterfaces
HeaderButton {
imageSource: "images/add.svg"
onClicked: pageStack.push(Qt.resolvedUrl("NewDeviceWizard.qml"))
}
model: InterfacesModel {
id: interfacesModel
devices: Engine.deviceManager.devices
}
SwipeView {
anchors.fill: parent
clip: true
Item {
GridView {
id: interfacesGridView
anchors.fill: parent
anchors.margins: app.margins
model: InterfacesModel {
id: interfacesModel
devices: Engine.deviceManager.devices
shownInterfaces: ["light", "weather", "sensor", "media", "button"]
}
cellWidth: {
if (count < 6) {
return (interfacesGridView.width - spacing) / 2
}
return (interfacesGridView.width - spacing * 2) / 3
}
cellHeight: cellWidth
delegate: Item {
width: interfacesGridView.cellWidth
height: interfacesGridView.cellHeight
Pane {
anchors.fill: parent
anchors.margins: app.margins
property int tilesPerRow: Math.ceil(Math.sqrt(interfacesGridView.count))
cellWidth: width / tilesPerRow
cellHeight: height / tilesPerRow
delegate: Item {
width: interfacesGridView.cellWidth
height: interfacesGridView.cellHeight
Pane {
anchors.fill: parent
anchors.margins: app.margins
// color: "#22000000"
Material.elevation: 1
Column {
anchors.centerIn: parent
spacing: app.margins
ColorIcon {
height: app.iconSize * 2
width: height
color: app.guhAccent
anchors.horizontalCenter: parent.horizontalCenter
name: interfaceToIcon(model.name)
}
Label {
text: interfaceToString(model.name).toUpperCase()
anchors.horizontalCenter: parent.horizontalCenter
}
}
MouseArea {
anchors.fill: parent
onClicked: {
var page;
switch (model.name) {
case "light":
page = "LightsDeviceListPage.qml"
break;
default:
page = "GenericDeviceListPage.qml"
}
pageStack.push(Qt.resolvedUrl("devicelistpages/" + page), {filterInterface: model.name})
}
}
}
}
}
}
Item {
GridView {
id: gridView
anchors.fill: parent
anchors.margins: app.margins
model: DevicesBasicTagsModel {
id: devicesBasicTagsModel
devices: Engine.deviceManager.devices
hideSystemTags: true
Material.elevation: 1
Column {
anchors.centerIn: parent
spacing: app.margins
ColorIcon {
height: app.iconSize * 2
width: height
color: app.guhAccent
anchors.horizontalCenter: parent.horizontalCenter
name: interfaceToIcon(model.name)
}
cellWidth: {
if (count < 6) {
return (gridView.width - spacing) / 2
}
return (gridView.width - spacing * 2) / 3
}
cellHeight: cellWidth
delegate: Item {
width: gridView.cellWidth
height: gridView.cellHeight
Pane {
anchors.fill: parent
anchors.margins: app.margins
// color: "#22000000"
Material.elevation: 2
Label {
anchors.centerIn: parent
text: model.tagLabel
}
MouseArea {
anchors.fill: parent
onClicked: {
pageStack.push(Qt.resolvedUrl("devicelistpages/GenericDeviceListPage.qml"), {filterTag: model.tag})
}
}
}
}
}
}
ListView {
model: Engine.deviceManager.devices
delegate: ItemDelegate {
width: parent.width
Label {
anchors { fill: parent; leftMargin: app.margins; rightMargin: app.margins }
text: model.name
verticalAlignment: Text.AlignVCenter
text: interfaceToString(model.name).toUpperCase()
anchors.horizontalCenter: parent.horizontalCenter
}
}
MouseArea {
anchors.fill: parent
onClicked: {
var page;
switch (model.name) {
case "light":
page = "LightsDeviceListPage.qml"
break;
default:
page = "GenericDeviceListPage.qml"
}
pageStack.push(Qt.resolvedUrl("devicelistpages/" + page), {filterInterface: model.name})
}
}
}

View File

@ -1,5 +1,5 @@
import QtQuick 2.8
import QtQuick.Controls 2.2
import QtQuick.Controls 2.1
import "components"
import Guh 1.0

View File

@ -1,40 +1,74 @@
import QtQuick 2.5
import QtQuick.Controls 2.1
import QtQuick.Controls.Material 2.2
import QtQuick.Controls.Material 2.1
import QtQuick.Layouts 1.2
import Guh 1.0
import "components"
Page {
id: root
footer: TabBar {
Material.elevation: 2
TabButton {
text: "Things"
onClicked: mainSwipeView.currentIndex = 0
header: GuhHeader {
text: "My things"
backButtonVisible: false
menuButtonVisible: true
onMenuPressed: mainMenu.open()
}
Menu {
id: mainMenu
width: implicitWidth + app.margins
IconMenuItem {
iconSource: "../images/share.svg"
text: "Configure things"
}
TabButton {
text: "Magic"
onClicked: mainSwipeView.currentIndex = 1
IconMenuItem {
iconSource: "../images/add.svg"
text: "Add a new thing..."
onTriggered: pageStack.push(Qt.resolvedUrl("NewDeviceWizard.qml"))
}
TabButton {
text: "Settings"
onClicked: mainSwipeView.currentIndex = 2
IconMenuItem {
iconSource: "../images/settings.svg"
text: "App settings"
onTriggered: pageStack.push(Qt.resolvedUrl("SettingsPage.qml"))
}
IconMenuItem {
iconSource: "../images/info.svg"
text: "System information"
onTriggered: pageStack.push(Qt.resolvedUrl("SystemInfoPage.qml"))
}
}
SwipeView {
id: mainSwipeView
ColumnLayout {
anchors.fill: parent
interactive: false
anchors.margins: app.margins
DevicesPage {
SwipeView {
id: swipeView
Layout.fillWidth: true
Layout.fillHeight: true
DevicesPage {
width: parent.view.width
height: parent.view.height
shownInterfaces: ["light", "weather", "sensor", "media"]
}
DevicesPage {
width: parent.view.width
height: parent.view.height
shownInterfaces: ["gateway", "button", "notifications"]
}
}
MagicPage {
}
SettingsPage {
PageIndicator {
Layout.alignment: Qt.AlignHCenter
count: swipeView.count
currentIndex: swipeView.currentIndex
}
}
}

View File

@ -3,6 +3,7 @@ import QtQuick.Layouts 1.1
import QtQuick.Controls 2.1
import Guh 1.0
import "components"
import "paramdelegates"
Page {
id: root
@ -38,27 +39,28 @@ Page {
}
Connections {
target: Engine.jsonRpcClient
onResponseReceived: {
print("response received", response)
if (commandId == d.addRequestId) {
print("result", response["deviceError"])
d.addResult = (response["deviceError"] === "DeviceErrorNoError")
internalPageStack.push(resultsPage)
} else if (commandId == d.pairRequestId) {
switch (response["setupMethod"]) {
case "SetupMethodPushButton":
d.pairingTransactionId = response["pairingTransactionId"];
print("response", response["displayMessage"], d.pairingTransactionId)
internalPageStack.push(pairingPage, {text: response["displayMessage"]})
break;
default:
print("Setup method", response["setupMethod"], "not handled");
}
target: Engine.deviceManager
onPairDeviceReply: {
switch (params["setupMethod"]) {
case "SetupMethodPushButton":
d.pairingTransactionId = params["pairingTransactionId"];
print("response", params["displayMessage"], d.pairingTransactionId)
internalPageStack.push(pairingPage, {text: params["displayMessage"]})
break;
default:
print("Setup method", params["setupMethod"], "not handled");
}
}
onConfirmPairingReply: {
print("result", params["deviceError"])
d.addResult = (params["deviceError"] === "DeviceErrorNoError")
internalPageStack.push(resultsPage)
}
onAddDeviceReply: {
d.addResult = (params["deviceError"] === "DeviceErrorNoError")
internalPageStack.push(resultsPage)
}
}
StackView {
@ -77,7 +79,7 @@ Page {
anchors.fill: parent
anchors.margins: app.margins
Label {
text: model.name
text: model.displayName
Layout.fillWidth: true
Layout.fillHeight: true
verticalAlignment: Text.AlignVCenter
@ -111,7 +113,7 @@ Page {
anchors.fill: parent
anchors.margins: app.margins
Label {
text: model.name
text: model.displayName
Layout.fillWidth: true
Layout.fillHeight: true
verticalAlignment: Text.AlignVCenter
@ -128,6 +130,8 @@ Page {
discovery.discoverDevices(deviceClass.id)
internalPageStack.push(discoveryPage)
}
} else if (deviceClass.createMethods.indexOf("CreateMethodUser") !== -1) {
internalPageStack.push(paramsPage)
}
print("should setup", deviceClass.name, deviceClass.setupMethod, deviceClass.createMethods, deviceClass["discoveryParamTypes"].count)
@ -281,23 +285,40 @@ Page {
id: paramsView
ColumnLayout {
anchors.fill: parent
anchors.margins: 10
spacing: 10
Label {
text: "Name the thing:"
Layout.fillWidth: true
}
TextField {
id: nameTextField
text: d.deviceName ? d.deviceName : ""
spacing: app.margins
ColumnLayout {
Layout.margins: app.margins
Layout.fillWidth: true
Label {
text: "Name the thing:"
Layout.fillWidth: true
}
TextField {
id: nameTextField
text: d.deviceName ? d.deviceName : ""
Layout.fillWidth: true
}
}
Item {
ThinDivider {}
Flickable {
Layout.fillWidth: true
Layout.fillHeight: true
Column {
width: parent.width
Repeater {
id: paramRepeater
model: d.deviceClass.paramTypes
delegate: ParamDelegate {
width: parent.width
paramType: d.deviceClass.paramTypes.get(index)
}
}
}
}
Button {
Layout.fillWidth: true
text: "OK"
@ -305,12 +326,25 @@ Page {
print("setupMethod", d.deviceClass.setupMethod)
switch (d.deviceClass.setupMethod) {
case 0:
d.addRequestId = Engine.jsonRpcClient.addDiscoveredDevice(d.deviceClass.id, d.deviceDescriptorId, nameTextField.text);
if (d.deviceDescriptorId) {
Engine.deviceManager.addDiscoveredDevice(d.deviceClass.id, d.deviceDescriptorId, nameTextField.text);
} else {
var params = []
for (var i = 0; i < paramRepeater.count; i++) {
var param = {}
param.paramTypeId = paramRepeater.itemAt(i).paramType.id
param.value = paramRepeater.itemAt(i).value
params.push(param)
}
Engine.deviceManager.addDevice(d.deviceClass.id, nameTextField.text, params);
}
break;
case 1:
case 2:
case 3:
d.pairRequestId = Engine.jsonRpcClient.pairDevice(d.deviceClass.id, d.deviceDescriptorId);
Engine.deviceManager.pairDevice(d.deviceClass.id, d.deviceDescriptorId);
break;
}
@ -339,7 +373,7 @@ Page {
Layout.fillWidth: true
text: "OK"
onClicked: {
d.addRequestId = Engine.jsonRpcClient.confirmPairing(d.pairingTransactionId, d.deviceDescriptorId);
Engine.deviceManager.confirmPairing(d.pairingTransactionId, d.deviceDescriptorId);
}
}
}

View File

@ -3,32 +3,44 @@ import QtQuick.Controls 2.1
import QtQuick.Controls.Material 2.1
import QtQuick.Layouts 1.1
import Guh 1.0
import "components"
Page {
id: root
header: GuhHeader {
text: "Settings"
backButtonVisible: true
onBackPressed: pageStack.pop()
}
ColumnLayout {
anchors { left: parent.left; right: parent.right; top: parent.top; margins: app.margins }
Label {
Layout.fillWidth: true
text: "Connected to:"
color: Material.accent
text: "Application".toUpperCase()
color: app.guhAccent
}
RowLayout {
Layout.fillWidth: true
Label {
Layout.fillWidth: true
text: Engine.connection.url
text: "Full screen"
}
Button {
text: "Disconnect"
onClicked: {
settings.lastConnectedHost = "";
Engine.connection.disconnect();
}
CheckBox {
checked: settings.fullscreen
onClicked: settings.fullscreen = checked
}
}
RowLayout {
Layout.fillWidth: true
Label {
Layout.fillWidth: true
text: "Return to home on idle"
}
CheckBox {
checked: settings.returnToHome
onClicked: settings.returnToHome = checked
}
}
}

View File

@ -0,0 +1,48 @@
import QtQuick 2.8
import QtQuick.Controls 2.1
import QtQuick.Controls.Material 2.1
import QtQuick.Layouts 1.3
import "components"
import Guh 1.0
Page {
id: root
header: GuhHeader {
text: "System information"
backButtonVisible: true
onBackPressed: pageStack.pop()
}
ColumnLayout {
anchors.fill: parent
anchors.margins: app.margins
Label {
Layout.fillWidth: true
text: "Connected to:"
color: Material.accent
}
RowLayout {
Layout.fillWidth: true
Label {
Layout.fillWidth: true
text: Engine.connection.url
}
Button {
text: "Disconnect"
onClicked: {
settings.lastConnectedHost = "";
Engine.connection.disconnect();
}
}
}
Item {
Layout.fillWidth: true
Layout.fillHeight: true
}
}
}

View File

@ -0,0 +1,74 @@
import QtQuick 2.3
Item {
id: root
property int ct: minCt
property int minCt: 153
property int maxCt: 500
property Component touchDelegate
property bool active: true
property bool pressed: mouseArea.pressed
Rectangle {
height: parent.width
width: parent.height
anchors.centerIn: parent
rotation: -90
gradient: Gradient {
GradientStop { position: 0.0; color: "#efffff" }
GradientStop { position: 0.5; color: "#ffffea" }
GradientStop { position: 1.0; color: "#ffd649" }
}
}
Loader {
id: touchDelegateLoader
// 0 : width = minCt : maxCt
// x = (width * (ct - minCt) / (maxCt-minCt))
property int position: (root.width * (root.ct - root.minCt) / (root.maxCt - root.minCt));
x: item ? Math.max(0, Math.min(position - width * .5, parent.width - item.width)) : 0
sourceComponent: root.touchDelegate
visible: !mouseArea.pressed && root.active
Behavior on x {
enabled: !mouseArea.pressed
NumberAnimation {}
}
}
MouseArea {
id: mouseArea
anchors.fill: parent
preventStealing: true
drag.minimumX: 0
drag.maximumX: width - dndItem.width
drag.minimumY: 0
drag.maximumY: height - dndItem.height
onPressed: {
dndItem.x = Math.min(width - dndItem.width, Math.max(0, mouseX - dndItem.width / 2))
dndItem.y = 0;
mouseArea.drag.target = dndItem;
}
onPositionChanged: {
root.ct = Math.min(root.maxCt, Math.max(root.minCt, (mouseX * (root.maxCt - root.minCt) / width) + root.minCt))
print("ct is now", root.ct)
}
onReleased: {
root.ct = Math.min(root.maxCt, Math.max(root.minCt, (mouseX * (root.maxCt - root.minCt) / width) + root.minCt))
mouseArea.drag.target = undefined;
}
}
Loader {
id: dndItem
sourceComponent: root.touchDelegate
visible: mouseArea.pressed && root.active
}
}

View File

@ -0,0 +1,318 @@
import QtQuick 2.4
import QtQuick.Controls 2.1
import Guh 1.0
Item {
id: root
property var model: null
property color color: "grey"
Connections {
target: model
onCountChanged: canvas.requestPaint()
}
onModelChanged: canvas.requestPaint()
Label {
anchors.centerIn: parent
width: parent.width - 2 * app.margins
wrapMode: Text.WordWrap
text: "Sorry, there isn't enough data to display a graph here yet!"
visible: !root.model.busy && root.model.count <= 2
horizontalAlignment: Text.AlignHCenter
font.pixelSize: app.largeFont
}
BusyIndicator {
anchors.centerIn: parent
visible: model.busy
}
Canvas {
id: canvas
visible: root.model.count > 2
anchors.fill: parent
property int minTemp: {
var lower = Math.floor(root.model.minimumValue - 2);
var upper = Math.ceil(root.model.maximumValue + 2);
print("upper", upper, "lower", lower)
if (!lower || !upper) {
return 0
}
while ((upper - lower) % 10 != 0) {
lower -= 1;
if ((upper - lower) % 10 != 0) {
upper += 1;
}
}
return lower;
}
property int maxTemp: {
var lower = Math.floor(root.model.minimumValue - 2);
var upper = Math.ceil(root.model.maximumValue + 2);
if (!lower || !upper) {
return 0
}
while ((upper - lower) % 10 != 0) {
lower -= 1;
if ((upper - lower) % 10 != 0) {
upper += 1;
}
}
return upper;
}
property int topMargins: app.margins
property int bottomMargins: app.margins * 4
property int leftMargins: app.margins * 3
property int rightMargins: app.margins
property color gridColor: "#d0d0d0"
property int contentWidth: canvas.width - leftMargins - rightMargins
property int contentHeight: canvas.height - topMargins - bottomMargins
property int totalSections: Math.round((maxTemp - minTemp) / 10) * 10
property int sections: {
var tmp = totalSections;
while (tmp >= 10) {
tmp /= 2;
}
return tmp;
}
// Pixel per section
property real pps: contentHeight / sections;
onPaint: {
print("painting canvas", totalSections, sections)
var minTemp
var ctx = canvas.getContext('2d');
ctx.save();
ctx.reset()
ctx.translate(leftMargins, topMargins)
ctx.globalAlpha = 1//canvas.alpha;
//ctx.fillStyle = canvas.fillStyle;
ctx.font = "" + app.smallFont + "px Ubuntu";
paintGrid(ctx)
enumerate(ctx)
// paintWifis(ctx, canvas.selectedIndex)
paintGraph(ctx)
ctx.restore();
}
function paintGrid(ctx) {
ctx.strokeStyle = canvas.gridColor;
ctx.fillStyle = "black"
ctx.lineWidth = 1;
ctx.beginPath();
ctx.rect(0, 0, contentWidth, contentHeight)
ctx.stroke();
ctx.closePath();
// Horizontal lines
var tempInterval = (maxTemp - minTemp) / sections;
for (var i = 0; i <= sections; i++) {
ctx.beginPath();
ctx.lineWidth = 1;
ctx.strokeStyle = canvas.gridColor
ctx.moveTo(0, i * pps);
ctx.lineTo(contentWidth, i * pps)
ctx.stroke();
ctx.closePath();
ctx.beginPath();
var label = maxTemp - (tempInterval * i).toFixed(0)
var textSize = ctx.measureText(label)
ctx.strokeStyle = "black"
ctx.fillStyle = "black"
ctx.lineWidth = 0;
ctx.text(label, -textSize.width - app.margins, i * pps + 5)
// ctx.stroke();
ctx.fill()
ctx.closePath()
}
ctx.beginPath();
ctx.strokeStyle = "black"
ctx.fillStyle = "black"
ctx.lineWidth = 0;
var label = "°C"
var textSize = ctx.measureText(label)
ctx.text(label, -textSize.width - 1, -1 * pps + 5)
// ctx.stroke();
ctx.fill()
ctx.closePath()
}
function enumerate(ctx) {
// enumate x axis
ctx.beginPath();
ctx.globalAlpha = 1;
ctx.strokeStyle = "black"
ctx.fillStyle = "black"
ctx.lineWidth = 0;
// enumerate Y axis
var lastTextX = -1;
for (var i = 0; i < model.count - 1; i++) {
var x = contentWidth / (model.count - 1) * i;
if (x < lastTextX) continue;
var label = model.get(i).dayString
var textSize = ctx.measureText(label)
ctx.text(label.slice(0,2).concat("."), x, contentHeight + app.smallFont + app.margins / 2)
switch (model.average) {
case ValueLogsProxyModel.AverageQuarterHour:
case ValueLogsProxyModel.AverageHourly:
case ValueLogsProxyModel.AverageDayTime:
label = model.get(i).timeString
break;
default:
label = model.get(i).dateString
}
textSize = ctx.measureText(label)
ctx.text(label, x, contentHeight + app.smallFont * 2 + app.margins)
lastTextX = x + textSize.width;
}
// ctx.stroke();
ctx.fill()
ctx.closePath();
}
function paintGraph(ctx) {
if (model.count <= 1) {
return;
}
var tempInterval = (maxTemp - minTemp) / sections;
ctx.beginPath();
ctx.globalAlpha = 1;
ctx.lineWidth = 2;
var graphStroke = root.color;
var grapFill = Qt.rgba(root.color.r, root.color.g, root.color.b, .4);
ctx.strokeStyle = graphStroke;
ctx.fillStyle = grapFill;
var points = new Array();
for (var i = 0; i < model.count; i++) {
var value = model.get(i).value;
var point = new Object();
// print("painting value", value)
point.x = (i == 0) ? 0 : (contentWidth / (model.count - 2) * i);
point.y = contentHeight - (value - minTemp) / tempInterval * pps;
points.push(point);
}
paintBezier(ctx, points);
ctx.stroke();
ctx.closePath();
ctx.beginPath();
paintBezier(ctx, points)
ctx.lineTo(contentWidth, contentHeight);
ctx.lineTo(0, contentHeight);
ctx.fill();
ctx.closePath();
ctx.beginPath();
ctx.globalAlpha = 1;
ctx.lineWidth = 2;
ctx.strokeStyle = "green"
ctx.fillStyle = "green"
points = new Array();
for (var i = 0; i < model.count; i++) {
var dayMaxTemp = model.get(i).maxTemp;
var point = new Object();
point.x = (i == 0) ? 0 : (contentWidth / (model.count - 1) * i);
point.y = - (dayMaxTemp - maxTemp) / tempInterval * pps;
points.push(point);
}
paintBezier(ctx, points);
ctx.stroke();
ctx.closePath();
}
function paintBezier(ctx, points) {
if (points.length == 2) {
ctx.moveTo(points[0].x, points[0].y)
ctx.lineTo(points[1].x, points[1].y)
} else {
var n = points.length - 1;
points[0].rhsx = points[0].x + 2 * points[1].x;
points[0].rhsy = points[0].y + 2 * points[1].y;
for (var i = 1; i < n - 1; i++) {
points[i].rhsx = 4 * points[i].x + 2 * points[i+1].x;
points[i].rhsy = 4 * points[i].y + 2 * points[i+1].y;
}
points[n - 1].rhsx = (8 * points[n - 1].x + points[n].x) / 2;
points[n - 1].rhsy = (8 * points[n - 1].y + points[n].y) / 2;
var b = 2.0;
n = points.length - 1;
points[0].firstcontrolx = points[0].rhsx / b;
points[0].firstcontroly = points[0].rhsy / b;
for (var i = 1; i < n; i++) {
points[i].tmp = 1 / b;
b = (i < n - 1 ? 4.0 : 3.5) - points[i].tmp;
points[i].firstcontrolx = (points[i].rhsx - points[i - 1].firstcontrolx) / b;
points[i].firstcontroly = (points[i].rhsy - points[i - 1].firstcontroly) / b;
}
for (var i = 1; i < n; i++) {
points[n - i - 1].firstcontrolx -= points[n - i].tmp * points[n - i].firstcontrolx;
points[n - i - 1].firstcontroly -= points[n - i].tmp * points[n - i].firstcontroly;
}
n = points.length - 1;
for (var i = 0; i < n; i++) {
points[i].secondcontrolx = 2 * points[i + 1].x - points[i + 1].firstcontrolx;
points[i].secondcontroly = 2 * points[i + 1].y - points[i + 1].firstcontroly;
}
points[n - 1].secondcontrolx = (points[n].x + points[n - 1].firstcontrolx) / 2;
points[n - 1].secondcontroly = (points[n].x + points[n - 1].firstcontroly) / 2;
ctx.moveTo(points[0].x, points[0].y);
for (var i = 0; i < n - 1; i++) {
// ctx.lineTo(points[i].firstcontrolx, points[i].firstcontroly)
// ctx.lineTo(points[i].secondcontrolx, points[i].secondcontroly)
// ctx.lineTo(points[i+1].x, points[i+1].y)
ctx.bezierCurveTo(points[i].firstcontrolx, points[i].firstcontroly,
points[i].secondcontrolx, points[i].secondcontroly,
points[i + 1].x, points[i + 1].y)
}
}
}
function hourToX(hour) {
var entries = root.day.count;
return canvas.contentWidth / entries * hour
}
}
}

View File

@ -1,7 +1,7 @@
import QtQuick 2.5
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.1
import QtQuick.Controls.Material 2.2
import QtQuick.Controls.Material 2.1
ToolBar {
id: root
@ -9,9 +9,11 @@ ToolBar {
property string text
property alias backButtonVisible: backButton.visible
property alias menuButtonVisible: menuButton.visible
default property alias data: layout.data
signal backPressed();
signal menuPressed();
Rectangle {
anchors.fill: parent
@ -22,6 +24,13 @@ ToolBar {
id: layout
anchors { fill: parent; leftMargin: app.margins; rightMargin: app.margins }
HeaderButton {
id: menuButton
imageSource: "../images/navigation-menu.svg"
visible: false
onClicked: root.menuPressed();
}
HeaderButton {
id: backButton
imageSource: "../images/back.svg"

View File

@ -0,0 +1,22 @@
import QtQuick 2.8
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.3
MenuItem {
id: root
property alias iconSource: icon.name
contentItem: RowLayout {
spacing: app.margins
ColorIcon {
id: icon
height: parent.height
width: height
}
Label {
text: root.text
Layout.fillWidth: true
font.pixelSize: app.mediumFont
}
}
}

View File

@ -0,0 +1,8 @@
import QtQuick 2.0
import QtQuick.Layouts 1.2
Rectangle {
height: 1
Layout.fillWidth: true
color: app.guhAccent
}

View File

@ -0,0 +1,40 @@
import QtQuick 2.8
import QtQuick.Controls 2.1
Item {
id: root
implicitHeight: slider.implicitHeight
property real value: 0
property alias from: slider.from
property alias to: slider.to
signal moved(real value);
Slider {
id: slider
anchors.left: parent.left; anchors.right: parent.right
from: 0
to: 100
property var lastSentTime: new Date()
onValueChanged: {
var currentTime = new Date();
if (pressed && currentTime - lastSentTime > 200) {
root.moved(slider.value)
lastSentTime = currentTime
}
}
onPressedChanged: {
if (!pressed) {
root.moved(slider.value)
}
}
}
Binding {
target: slider
property: "value"
value: root.value
when: !slider.pressed
}
}

View File

@ -4,5 +4,6 @@ Item {
property var device: null
property var deviceClass: null
property string interfaceName
}

View File

@ -2,6 +2,7 @@ import QtQuick 2.5
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.1
import Guh 1.0
import "../components"
CustomViewBase {
id: root
@ -10,10 +11,20 @@ CustomViewBase {
RowLayout {
id: row
anchors { left: parent.left; top: parent.top; right: parent.right; margins: app.margins }
Button {
AbstractButton {
width: app.iconSize * 2
height: width
property var muteState: root.device.states.getState(deviceClass.stateTypes.findByName("mute").id)
property bool isMuted: muteState.value
text: isMuted ? "unmute" : "mute"
property bool isMuted: muteState.value === true
ColorIcon {
anchors.fill: parent
name: "../images/audio-speakers-muted-symbolic.svg"
color: parent.isMuted ? app.guhAccent : keyColor
}
onClicked: {
var paramList = []
var muteParam = {}

View File

@ -2,6 +2,7 @@ import QtQuick 2.5
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.1
import Guh 1.0
import "../components"
CustomViewBase {
id: root
@ -21,51 +22,100 @@ CustomViewBase {
RowLayout {
Layout.fillWidth: true
Button {
text: "|<"
Item { Layout.fillWidth: true; height: 1 }
property int iconSize: Math.min(root.width / 6, app.iconSize * 2)
AbstractButton {
Layout.fillWidth: true
height: Math.min(app.iconSize * 2)
ColorIcon {
height: parent.height
width: height
name: "../images/media-skip-backward.svg"
}
onClicked: {
executeAction("skipBack")
}
}
Button {
text: "<<"
AbstractButton {
Layout.fillWidth: true
height: Math.min(app.iconSize * 2)
ColorIcon {
height: parent.height
width: height
name: "../images/media-seek-backward.svg"
}
onClicked: {
executeAction("rewind")
}
}
Button {
text: "X"+ playbackState.value
AbstractButton {
Layout.fillWidth: true
height: Math.min(app.iconSize * 2)
ColorIcon {
height: parent.height
width: height
name: "../images/media-playback-stop.svg"
}
onClicked: {
executeAction("stop")
}
}
Button {
text: ">"
visible: playbackState.value == "PAUSED"
AbstractButton {
Layout.fillWidth: true
height: Math.min(app.iconSize * 2)
ColorIcon {
height: parent.height
width: height
name: "../images/media-playback-start.svg"
}
visible: playbackState.value == "PAUSED" || playbackState.value == "STOPPED"
onClicked: {
executeAction("play")
}
}
Button {
text: "||"
AbstractButton {
Layout.fillWidth: true
height: Math.min(app.iconSize * 2)
ColorIcon {
height: parent.height
width: height
name: "../images/media-playback-pause.svg"
}
visible: playbackState.value == "PLAYING"
onClicked: {
executeAction("pause")
}
}
Button {
text: ">>"
AbstractButton {
Layout.fillWidth: true
height: Math.min(app.iconSize * 2)
ColorIcon {
height: parent.height
width: height
name: "../images/media-seek-forward.svg"
}
onClicked: {
executeAction("fastForward")
}
}
Button {
text: ">|"
AbstractButton {
Layout.fillWidth: true
height: Math.min(app.iconSize * 2)
ColorIcon {
height: parent.height
width: height
name: "../images/media-skip-forward.svg"
}
onClicked: {
executeAction("skipNext")
}
}
Item { Layout.fillWidth: true; height: 1 }
}
}
}

View File

@ -0,0 +1,37 @@
import QtQuick 2.5
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.1
import "../components"
import Guh 1.0
CustomViewBase {
id: root
height: grid.implicitHeight + app.margins * 2
ColumnLayout {
id: grid
anchors { left: parent.left; top: parent.top; right: parent.right }
Label {
Layout.fillWidth: true
text: "Send a notification now:"
}
TextArea {
id: textArea
Layout.fillWidth: true
}
Button {
Layout.fillWidth: true
text: "Send"
onClicked: {
var params = []
var param1 = {}
var paramTypeId = root.deviceClass.actionTypes.findByName("notify").paramTypes.getParamType("title").id
param1.paramTypeId = paramTypeId
param1.value = textArea.text
params.push(param1)
Engine.deviceManager.executeAction(root.device.id, root.deviceClass.actionTypes.findByName("notify").id, params)
}
}
}
}

View File

@ -1,13 +1,95 @@
import QtQuick 2.5
import QtQuick.Controls 2.2
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.3
import "../components"
import Guh 1.0
CustomViewBase {
height: grid.implicitHeight + app.margins * 2
id: root
implicitHeight: grid.implicitHeight + app.margins * 2
property string interfaceName
readonly property var stateType: deviceClass.stateTypes.findByName(interfaceName.replace("sensor", ""))
readonly property var deviceState: device.states.getState(stateType.id)
ValueLogsProxyModel {
id: logsModel
deviceId: root.device.id
typeId: stateType.id
average: zoomTabBar.currentItem.avg
startTime: zoomTabBar.currentItem.startTime
Component.onCompleted: updateTimer.start();
onAverageChanged: updateTimer.start()
onStartTimeChanged: updateTimer.start();
}
Timer {
id: updateTimer
interval: 0
repeat: false
onTriggered: {
print("updating:", logsModel.startTime)
logsModel.update()
}
}
ColumnLayout {
Label {
text: "bla"
id: grid
anchors { left: parent.left; top: parent.top; right: parent.right }
RowLayout {
Layout.fillWidth: true
Layout.leftMargin: app.margins
Layout.rightMargin: app.margins
spacing: app.margins
ColorIcon {
name: app.interfaceToIcon(root.interfaceName)
height: app.iconSize
width: height
color: app.interfaceToColor(root.interfaceName)
}
Label {
text: deviceState.value + " " + stateType.unitString
font.pixelSize: app.largeFont
}
TabBar {
id: zoomTabBar
Layout.fillWidth: true
TabButton {
text: "6 h"
property int avg: ValueLogsProxyModel.AverageQuarterHour
property date startTime: {
var date = new Date();
date.setHours(new Date().getHours() - 6)
return date;
}
}
TabButton {
text: "24 h"
property int avg: ValueLogsProxyModel.AverageHourly
property date startTime: {
var date = new Date();
date.setHours(new Date().getHours() - 24);
return date;
}
}
TabButton {
text: "7 d"
property int avg: ValueLogsProxyModel.AverageDayTime
property date startTime: {
var date = new Date();
date.setDate(new Date().getDate() - 7);
return date;
}
}
}
}
Graph {
Layout.fillWidth: true
Layout.preferredHeight: 200
model: logsModel
color: app.interfaceToColor(root.interfaceName)
}
}
}

View File

@ -1,60 +1,108 @@
import QtQuick 2.5
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.1
import "../components"
CustomViewBase {
id: root
height: grid.implicitHeight + app.margins * 2
readonly property var weatherIconStateType: deviceClass.stateTypes ? deviceClass.stateTypes.findByName("weatherIcon") : null
readonly property var weatherIconState: weatherIconStateType && device.states ? device.states.getState(weatherIconStateType.id) : null
readonly property var weatherConditionStateType: deviceClass.stateTypes ? deviceClass.stateTypes.findByName("weatherCondition") : null
readonly property var weatherConditionState: weatherConditionStateType && device.states ? device.states.getState(weatherConditionStateType.id) : null
readonly property var weatherDescriptionStateType: deviceClass.stateTypes ? deviceClass.stateTypes.findByName("weatherDescription") : null
readonly property var weatherDescriptionState: weatherDescriptionStateType && device.states ? device.states.getState(weatherDescriptionStateType.id) : null
readonly property var temperatureStateType: deviceClass.stateTypes ? deviceClass.stateTypes.findByName("temperature") : null
readonly property var temperatureState: temperatureStateType && device.states ? device.states.getState(temperatureStateType.id) : null
readonly property var minTemperatureStateType: deviceClass.stateTypes ? deviceClass.stateTypes.findByName("temperature minimum") : null
readonly property var minTemperatureState: minTemperatureStateType && device.states ? device.states.getState(minTemperatureStateType.id) : null
readonly property var humidityStateType: deviceClass.stateTypes ? deviceClass.stateTypes.findByName("humidity") : null
readonly property var humidityState: humidityStateType && device.states ? device.states.getState(humidityStateType.id) : null
readonly property var maxTemperatureStateType: deviceClass.stateTypes ? deviceClass.stateTypes.findByName("temperature maximum") : null
readonly property var maxTemperatureState: maxTemperatureStateType && device.states ? device.states.getState(maxTemperatureStateType.id) : null
readonly property var windDirectionStateType: deviceClass.stateTypes ? deviceClass.stateTypes.findByName("windDirection") : null
readonly property var windDirectionState: windDirectionStateType && device.states ? device.states.getState(windDirectionStateType.id) : null
readonly property var windSpeedStateType: deviceClass.stateTypes ? deviceClass.stateTypes.findByName("windSpeed") : null
readonly property var windSpeedState: windSpeedStateType && device.states ? device.states.getState(windSpeedStateType.id) : null
ColumnLayout {
id: grid
anchors { left: parent.left; top: parent.top; right: parent.right; margins: app.margins }
spacing: app.margins
RowLayout {
Layout.fillWidth: true
Label {
text: (temperatureState ? temperatureState.value : "N/A") + " °"
text: (temperatureState ? Math.round(temperatureState.value * 10) / 10 : "N/A") + " °"
Layout.fillWidth: true
Layout.preferredWidth: parent.width
Layout.preferredWidth: (parent.width - mainImage.width) / 2
font.pixelSize: app.largeFont
horizontalAlignment: Text.AlignHCenter
}
Image {
id: mainImage
// h : w = ss.h : ss.w
Layout.preferredWidth: height * implicitWidth / implicitHeight
Layout.preferredHeight: app.largeFont * 4
source: weatherIconState ? "../images/weathericons/weather-" + weatherIconState.value + "-symbolic.svg" : ""
source: weatherConditionState ? "../images/weathericons/weather-" + weatherConditionState.value + ".svg" : ""
sourceSize.height: height
}
ColumnLayout {
Layout.fillWidth: true
Layout.preferredWidth: parent.width
Label {
Layout.fillWidth: true
text: maxTemperatureState ? (maxTemperatureState.value + "°") : ""
horizontalAlignment: Text.AlignHCenter
Layout.preferredWidth: (parent.width - mainImage.width) / 2
RowLayout {
ColorIcon {
name: "../images/weathericons/humidity.svg"
width: app.iconSize
height: width
}
Label {
text: (humidityState ? humidityState.value : "N/A") + " %"
}
}
Label {
Layout.fillWidth: true
text: minTemperatureState ? (minTemperatureState.value + "°") : ""
horizontalAlignment: Text.AlignHCenter
RowLayout {
ColorIcon {
name: "../images/weathericons/wind.svg"
width: app.iconSize
height: width
}
Label {
text: windSpeedState && windDirectionState ? "%1 km/h %2".arg(windSpeedState.value).arg(angleToOrientation(windDirectionState.value)) : "N/A"
function angleToOrientation(windAngle) {
if (windAngle < 23) {
return qsTr("N");
} else if (windAngle < 68) {
return qsTr("NE");
} else if (windAngle < 113) {
return qsTr("E");
} else if (windAngle < 156) {
return qsTr("SE");
} else if (windAngle < 203) {
return qsTr("S");
} else if (windAngle < 248) {
return qsTr("SW");
} else if (windAngle < 293) {
return qsTr("W");
} else if (windAngle < 338) {
return qsTr("NW");
}
return qsTr("N");
}
}
}
}
}
Label {
Layout.fillWidth: true
text: weatherDescriptionState.value
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter
}
}
}

View File

@ -9,6 +9,12 @@ Page {
property alias filterTag: devicesProxy.filterTag
property alias filterInterface: devicesProxy.filterInterface
Component.onCompleted: {
if (devicesProxy.count == 1) {
enterPage(0, true)
}
}
header: GuhHeader {
text: {
if (subPage.filterTag != DeviceClass.BasicTagNone) {
@ -22,6 +28,29 @@ Page {
onBackPressed: pageStack.pop()
}
function enterPage(index, replace) {
var device = devicesProxy.get(index);
var deviceClass = Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId);
print("clicked", deviceClass.interfaces)
var page;
/* if (deviceClass.interfaces.indexOf("media") >= 0) {
page = "MediaDevicePage.qml";
} else */if (deviceClass.interfaces.indexOf("button") >= 0) {
page = "ButtonDevicePage.qml";
} else if (deviceClass.interfaces.indexOf("weather") >= 0) {
page = "WeatherDevicePage.qml";
// } else if (deviceClass.interfaces.indexOf("sensor") >= 0) {
// page = "SensorDevicePage.qml";
} else {
page = "GenericDevicePage.qml";
}
if (replace) {
pageStack.replace(Qt.resolvedUrl("../devicepages/" + page), {device: devicesProxy.get(index)})
} else {
pageStack.push(Qt.resolvedUrl("../devicepages/" + page), {device: devicesProxy.get(index)})
}
}
ListView {
anchors.fill: parent
model: DevicesProxy {
@ -37,18 +66,7 @@ Page {
}
onClicked: {
var device = devicesProxy.get(index);
var deviceClass = Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId);
print("clicked", deviceClass.interfaces)
var page;
if (deviceClass.interfaces.indexOf("media") >= 0) {
page = "MediaDevicePage.qml";
} else if (deviceClass.interfaces.indexOf("button") >= 0) {
page = "ButtonDevicePage.qml";
} else {
page = "GenericDevicePage.qml";
}
pageStack.push(Qt.resolvedUrl("../devicepages/" + page), {device: devicesProxy.get(index)})
enterPage(index, false)
}
}
}

View File

@ -41,6 +41,7 @@ Page {
ListView {
Layout.fillHeight: true
Layout.fillWidth: true
clip: true
model: DevicesProxy {
id: devicesProxy
devices: Engine.deviceManager.devices
@ -98,12 +99,12 @@ Page {
}
}
onClicked: {
pageStack.push(Qt.resolvedUrl("../devicepages/GenericDevicePage.qml"), {device: devicesProxy.get(index)})
if (deviceClass.interfaces.indexOf("colorlight") >= 0) {
pageStack.push(Qt.resolvedUrl("../devicepages/ColorLightDevicePage.qml"), {device: devicesProxy.get(index)})
}
}
}
}
}
}

View File

@ -4,11 +4,8 @@ import QtQuick.Layouts 1.1
import Guh 1.0
import "../components"
Page {
DevicePageBase {
id: root
property var device: null
readonly property var deviceClass: Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId)
header: GuhHeader {
text: device.name
@ -46,9 +43,18 @@ Page {
property var ruleActionType: ruleAction ? ruleActionDeviceClass.actionTypes.getActionType(ruleAction.actionTypeId) : null
property var ruleActionDevice: ruleAction ? Engine.deviceManager.devices.getDevice(ruleAction.deviceId) : null
property var ruleActionDeviceClass: ruleActionDevice ? Engine.deviceManager.deviceClasses.getDeviceClass(ruleActionDevice.deviceClassId) : null
property var ruleActionParams: ruleAction ? ruleAction.ruleActionParams : null
property var ruleActionParams: ruleAction && ruleAction ? ruleAction.ruleActionParams : null
property var ruleActionParam: ruleActionParams.count == 1 ? ruleActionParams.get(0) : null
text: ruleActions.count > 1 ? "Multiple actions" : qsTr("%1: Set %2 to %3").arg(ruleActionDevice.name).arg(ruleActionType.name).arg(ruleActionParam.value)
text: {
if (ruleActions && ruleActions.count > 1) {
return "Multiple actions";
} else if (ruleActionParam) {
return qsTr("%1: Set %2 to %3").arg(ruleActionDevice.name).arg(ruleActionType.name).arg(ruleActionParam.value)
} else {
return qsTr("%1: Call %2").arg(ruleActionDevice.name).arg(ruleActionType.name)
}
}
swipe.right: MouseArea {
anchors.right: parent.right
height: parent.height
@ -92,13 +98,7 @@ Page {
event["eventTypeId"] = eventDeviceClass.eventTypes.findByName("pressed").id;
events.push(event);
rule["eventDescriptors"] = events;
var actions = [];
var action = {};
action["actionTypeId"] = page.actionType.id;
action["deviceId"] = page.device.id;
action["ruleActionParams"] = page.params;
actions.push(action);
rule["actions"] = actions;
rule["actions"] = page.actions;
Engine.ruleManager.addRule(rule);
pageStack.pop(root)
})

View File

@ -0,0 +1,144 @@
import QtQuick 2.5
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.1
import Guh 1.0
import "../components"
import "../actiondelegates"
Page {
id: root
property var device: null
readonly property var deviceClass: Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId)
header: GuhHeader {
text: device.name
onBackPressed: pageStack.pop()
HeaderButton {
imageSource: "../images/info.svg"
onClicked: pageStack.push(Qt.resolvedUrl("GenericDeviceStateDetailsPage.qml"), {device: root.device})
}
}
ColumnLayout {
anchors.fill: parent
RowLayout {
id: powerRow
Layout.fillWidth: true
Layout.margins: app.margins
spacing: app.margins
property var powerStateType: root.deviceClass.stateTypes.findByName("power")
property var powerState: root.device.states.getState(powerStateType.id)
property var brightnessStateType: root.deviceClass.stateTypes.findByName("brightness")
property var brightnessState: root.device.states.getState(brightnessStateType.id)
AbstractButton {
width: app.iconSize * 2
height: width
ColorIcon {
anchors.fill: parent
name: "../images/torch-off.svg"
color: powerRow.powerState.value === true ? keyColor : app.guhAccent
}
onClicked: {
var actionType = root.deviceClass.actionTypes.findByName("power");
var params = []
var param = {}
param["paramTypeId"] = actionType.paramTypes.get(0).id;
param["value"] = false;
params.push(param)
Engine.deviceManager.executeAction(root.device.id, powerRow.powerStateType.id, params);
}
}
ThrottledSlider {
id: brightnessSlider
Layout.fillWidth: true
value: powerRow.brightnessState.value
onMoved: {
var actionType = root.deviceClass.actionTypes.findByName("brightness");
var params = []
var param = {}
param["paramTypeId"] = actionType.paramTypes.get(0).id;
param["value"] = value;
params.push(param)
Engine.deviceManager.executeAction(root.device.id, powerRow.brightnessStateType.id, params);
}
}
AbstractButton {
width: app.iconSize * 2
height: width
ColorIcon {
anchors.fill: parent
name: "../images/torch-on.svg"
color: powerRow.powerState.value === true ? app.guhAccent : keyColor
}
onClicked: {
var actionType = root.deviceClass.actionTypes.findByName("power");
var params = []
var param = {}
param["paramTypeId"] = actionType.paramTypes.get(0).id;
param["value"] = true;
params.push(param)
Engine.deviceManager.executeAction(root.device.id, powerRow.powerStateType.id, params);
}
}
}
ColorPickerCt {
id: pickerCt
Layout.fillWidth: true
Layout.margins: app.margins
property var actionType: root.deviceClass.actionTypes.findByName("colorTemperature")
property var ctState: root.device.states.getState(actionType.id)
ct: ctState.value
height: 80
touchDelegate: Rectangle {
height: pickerCt.height
width: 5
color: "black"
}
property var lastSentTime: new Date()
onCtChanged: {
var currentTime = new Date();
if (pressed && currentTime - lastSentTime > 200) {
setColorTemp(ct)
lastSentTime = currentTime
}
}
function setColorTemp(ct) {
var actionType = root.deviceClass.actionTypes.findByName("colorTemperature");
var params = []
var param = {}
param["paramTypeId"] = actionType.paramTypes.get(0).id;
param["value"] = ct;
params.push(param)
Engine.deviceManager.executeAction(root.device.id, actionType.id, params);
}
}
ActionDelegateColor {
Layout.fillWidth: true
Layout.fillHeight: true
actionType: root.deviceClass.actionTypes.findByName("color")
actionState: root.device.states.getState(actionType.id).value
onExecuteAction: {
Engine.deviceManager.executeAction(root.device.id, actionType.id, params)
}
}
}
}

View File

@ -0,0 +1,51 @@
import QtQuick 2.5
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.1
import Guh 1.0
import "../components"
Page {
id: root
property var device: null
readonly property var deviceClass: Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId)
default property alias data: contentItem.data
Pane {
id: infoPane
visible: batteryState !== null || (connectedState !== null && connectedState.value === false)
height: visible ? implicitHeight : 0
anchors { left: parent.left; top: parent.top; right: parent.right }
property var batteryState: deviceClass.interfaces.indexOf("battery") >= 0 ? device.states.getState(deviceClass.stateTypes.findByName("batteryLevel").id) : null
// property var connectedState: deviceClass.interfaces.indexOf("connectable") >= 0 ? device.states.getState(deviceClass.stateTypes.findByName("connected").id) : null
property var connectedState: deviceClass.interfaces.indexOf("connectable") >= 0 ? device.states.getState(deviceClass.stateTypes.findByName("connected").id) : null
RowLayout {
anchors { left: parent.left; top: parent.top; right: parent.right }
Item {
Layout.fillWidth: true
height: app.iconSize
}
ColorIcon {
height: app.iconSize
width: height
visible: infoPane.connectedState !== null && infoPane.connectedState.value === false
color: "red"
name: "../images/dialog-warning-symbolic.svg"
}
ColorIcon {
height: app.iconSize
width: height * 1.23
name: infoPane.batteryState !== null ? "../images/battery/battery-" + ("00" + (Math.floor(infoPane.batteryState.value / 10) * 10)).slice(-3) + ".svg" : ""
}
}
}
Item {
id: contentItem
anchors.fill: parent
anchors.topMargin: infoPane.height
}
}

View File

@ -4,11 +4,8 @@ import QtQuick.Layouts 1.1
import Guh 1.0
import "../components"
Page {
DevicePageBase {
id: root
property var device: null
readonly property var deviceClass: Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId)
header: GuhHeader {
text: device.name
@ -36,39 +33,71 @@ Page {
width: parent.width
// spacing: app.margins
Loader {
id: stateViewLoader
Layout.fillWidth: true
source: {
var src = "";
print("**** devicetags", deviceClass.basicTags)
if (deviceClass.interfaces.indexOf("weather") >= 0) {
src = "WeatherView.qml";
}
if (deviceClass.interfaces.indexOf("mediacontroller") >= 0) {
src = "MediaControllerView.qml"
}
if (deviceClass.interfaces.indexOf("sensor") >= 0) {
src = "SensorView.qml"
}
Repeater {
id: interfaceViewsRepeater
property bool unhandledInterface: false
return Qt.resolvedUrl("../customviews/" + src);
}
Binding {
target: stateViewLoader.item ? stateViewLoader.item : null
property: "device"
value: device
}
Binding {
target: stateViewLoader.item ? stateViewLoader.item : null
property: "deviceClass"
value: deviceClass
model: deviceClass.interfaces
delegate: Loader {
id: stateViewLoader
Layout.fillWidth: true
source: {
var src = "";
var options = []
switch (modelData) {
case "weather":
src = "WeatherView.qml";
break;
case "mediacontroller":
src = "MediaControllerView.qml"
break;
case "extendedvolumecontroller":
src = "ExtendedVolumeController.qml"
break;
case "temperaturesensor":
case "humiditysensor":
src = "SensorView.qml"
options.interfaceName = modelData;
break;
case "notifications":
src = "NotificationsView.qml"
break;
case "battery":
case "connectable":
// Handled by our base class
break;
case "sensor":
case "media":
// Ignore interfaces without any states/actions
break;
default:
print("unhandled interface", modelData)
interfaceViewsRepeater.unhandledInterface = true
}
return Qt.resolvedUrl("../customviews/" + src);
}
Binding {
target: stateViewLoader.item ? stateViewLoader.item : null
property: "device"
value: device
}
Binding {
target: stateViewLoader.item ? stateViewLoader.item : null
property: "deviceClass"
value: deviceClass
}
Binding {
target: stateViewLoader.item ? stateViewLoader.item : null
property: "interfaceName"
value: modelData
}
}
}
Repeater {
model: deviceClass.actionTypes
model: interfaceViewsRepeater.count == 0 || interfaceViewsRepeater.unhandledInterface ? deviceClass.actionTypes : null
delegate: ItemDelegate {
Layout.fillWidth: true
Layout.preferredHeight: delegateLoader.height

View File

@ -27,7 +27,7 @@ Page {
Label {
id: stateLabel
Layout.preferredWidth: parent.width / 2
text: name
text: displayName
}
Label {

View File

@ -0,0 +1,44 @@
import QtQuick 2.5
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.1
import Guh 1.0
import "../components"
import "../customviews"
Page {
id: root
property var device: null
readonly property var deviceClass: Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId)
header: GuhHeader {
text: device.name
onBackPressed: pageStack.pop()
HeaderButton {
imageSource: "../images/info.svg"
onClicked: pageStack.push(Qt.resolvedUrl("GenericDeviceStateDetailsPage.qml"), {device: root.device})
}
}
ListView {
anchors { fill: parent }
spacing: app.margins
model: ListModel {
Component.onCompleted: {
var supportedInterfaces = ["temperaturesensor", "humiditysensor"]
for (var i = 0; i < supportedInterfaces.length; i++) {
if (root.deviceClass.interfaces.indexOf(supportedInterfaces[i]) >= 0) {
append({name: supportedInterfaces[i]});
}
}
}
}
delegate: SensorView {
width: parent.width
interfaceName: modelData
device: root.device
deviceClass: root.deviceClass
}
}
}

View File

@ -0,0 +1,30 @@
import QtQuick 2.5
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.1
import Guh 1.0
import "../components"
import "../customviews"
Page {
id: root
property var device: null
readonly property var deviceClass: Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId)
header: GuhHeader {
text: device.name
onBackPressed: pageStack.pop()
HeaderButton {
imageSource: "../images/info.svg"
onClicked: pageStack.push(Qt.resolvedUrl("GenericDeviceStateDetailsPage.qml"), {device: root.device})
}
}
WeatherView {
anchors.fill: parent
device: root.device
deviceClass: root.deviceClass
}
}

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 96 96.000001" width="96" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4782" style="color:#000000;fill:none" transform="rotate(90)" height="96" width="96" y="-28.143" x="78.505"/>
<path id="path4205" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:normal;isolation:auto;text-transform:none" d="m18.729 85.092-80 80 2.8281 2.8281 80-80-2.8281-2.8281z"/>
<path id="path4160" style="fill:#808080" d="m7.8772 95.935-3.5352 3.5352c6.9061 7.2961 10.777 16.961 10.777 27.035 0 10.435-4.1431 20.438-11.521 27.816l3.5352 3.5371c8.3148-8.3148 12.986-19.595 12.986-31.354 0-11.398-4.4005-22.337-12.242-30.57z"/>
<path id="path4158" style="fill:#808080" d="m-2.0056 105.82-3.5352 3.5352c4.2886 4.6701 6.6836 10.785 6.6836 17.152 0 6.7278-2.6704 13.176-7.4277 17.934l3.5352 3.5352c5.6936-5.6936 8.8926-13.417 8.8926-21.469 0-7.6913-2.9247-15.078-8.1484-20.688z"/>
<path id="path4180" style="fill:#808080" d="m48 8l-19.777 19.777h-15.778s-4.445 7.581-4.445 20.231 4.445 20.215 4.445 20.215h6.848l4.002-4.002h-8.219c-1.02-2.105-3.076-6.96-3.076-16.213 0-9.256 2.058-14.122 3.078-16.231h14.801l14.121-14.121v25.86l4-4v-31.516zm0 37.172l-4 4v29.17l-14.121-14.121h-0.928l-4.002 4.002h3.274l19.777 19.777v-42.828z" transform="translate(-67.857 78.505)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 96 96.000001" width="96" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4782" style="color:#000000;fill:none" transform="rotate(90)" height="96" width="96" y="-28.143" x="78.505"/>
<path id="path4180" style="fill:#808080" d="m48 8l-19.777 19.777h-15.778s-4.445 7.581-4.445 20.231 4.445 20.215 4.445 20.215h15.778l19.777 19.777v-80zm-4 9.656v60.686l-14.121-14.121h-14.803c-1.02-2.105-3.076-6.96-3.076-16.213 0-9.256 2.058-14.122 3.078-16.231h14.801l14.121-14.121z" transform="translate(-67.857 78.505)"/>
<path id="path4158" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-2.75 105.04-3.5352 3.5352c4.7573 4.7573 7.4277 11.208 7.4277 17.936 2e-7 6.7278-2.6704 13.176-7.4277 17.934l3.5352 3.52c5.6936-5.69 8.8926-13.41 8.8926-21.46 0-8.06-3.199-15.78-8.8926-21.47z"/>
<path id="circle4160" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m7.1328 95.152-3.5351 3.536c7.3784 7.3784 11.521 17.384 11.521 27.818 0 10.435-4.1431 20.438-11.521 27.816l3.5352 3.5371c8.3151-8.32 12.986-19.6 12.986-31.35 0-11.76-4.671-23.04-12.986-31.358z"/>
<rect id="rect4165" style="color:#000000;fill:none" height="96" width="96" y="78.505" x="-67.857"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#ed3146;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#ed3146" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#ed3146" height="40" width="8" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#ed3146" height="40" width="16" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#808080" height="40" width="24" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#808080" height="40" width="32" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#808080" height="40" width="40" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#808080" height="40" width="48" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#808080" height="40" width="56" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#808080" height="40" width="68" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#808080" height="40" width="72" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg id="svg4874" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="96" viewBox="0 0 118.00002 96.000009" width="118" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<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/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1" transform="translate(67.857 -78.505)">
<rect id="rect4217" style="color:#000000;fill:#808080" height="40" width="80" y="106.51" x="-51.857"/>
<rect id="rect5100" style="opacity:.21171;fill:none" height="96" width="118" y="78.505" x="-67.857"/>
<path id="path4213" style="color-rendering:auto;text-decoration-color:#000000;color:#000000;font-variant-numeric:normal;shape-rendering:auto;solid-color:#000000;text-decoration-line:none;fill:#808080;font-variant-position:normal;mix-blend-mode:normal;block-progression:tb;font-feature-settings:normal;shape-padding:0;font-variant-alternates:normal;text-indent:0;font-variant-caps:normal;image-rendering:auto;white-space:normal;text-decoration-style:solid;font-variant-ligatures:none;isolation:auto;text-transform:none" d="m-47.881 94.506c-5.0328 0.05818-8.7136-0.12028-11.725 1.541-1.5055 0.83064-2.6968 2.2356-3.3555 3.9902-0.65866 1.7547-0.89648 3.8383-0.89648 6.4688v40c0 2.6304 0.23782 4.7121 0.89648 6.4668 0.65866 1.7546 1.85 3.1596 3.3555 3.9902 3.011 1.6613 6.6918 1.4848 11.725 1.543h0.01172 72.023 0.01172c5.0328-0.0582 8.7136 0.11832 11.725-1.543 1.5055-0.83064 2.6968-2.2356 3.3555-3.9902 0.65866-1.7547 0.89648-3.8364 0.89648-6.4668v-40c0-2.6304-0.23782-4.7141-0.89648-6.4688s-1.85-3.1596-3.3555-3.9902c-3.011-1.6613-6.6918-1.4828-11.725-1.541h-0.01172-72.023-0.01172zm0.02344 4h72c5.0383 0.05877 8.3519 0.23688 9.8164 1.0449 0.73364 0.40478 1.1527 0.85295 1.543 1.8926 0.39025 1.0396 0.64062 2.6929 0.64062 5.0625v40c0 2.3696-0.25037 4.0229-0.64062 5.0625s-0.80933 1.4878-1.543 1.8926c-1.4645 0.80804-4.7782 0.98616-9.8164 1.0449h-71.977-0.02344c-5.0383-0.0588-8.3519-0.23688-9.8164-1.0449-0.73364-0.40478-1.1508-0.85296-1.541-1.8926-0.39025-1.0396-0.64258-2.6929-0.64258-5.0625v-40c0-2.3696 0.25232-4.0229 0.64258-5.0625 0.39025-1.0396 0.80738-1.4878 1.541-1.8926 1.4645-0.80804 4.7782-0.98616 9.8164-1.0449z"/>
<rect id="rect4215" style="color:#000000;fill:#808080" height="30" width="10" y="111.51" x="36.143"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,176 @@
<?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="dialog-warning-symbolic.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="48.797155"
inkscape:cy="50.782907"
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: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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.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: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:15px;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;fill:#808080;fill-opacity:1;stroke:none"
d="m 364.0904,368.96573 c -0.0215,-0.0161 -0.0354,-0.0404 -0.0567,-0.0566 -0.0253,-0.0201 -0.057,-0.0305 -0.0821,-0.0508 z"
id="path4157" />
<path
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;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;fill:#808080;fill-opacity:1;stroke:none"
d="m 364.07673,417.80167 -0.13873,0.10742 c 0.0251,-0.0203 0.0569,-0.0307 0.0821,-0.0508 0.0214,-0.0162 0.0353,-0.0405 0.0567,-0.0566 z"
id="path4344" />
<path
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;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;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1.00019777"
d="m 405.98976,396.36222 -10.92425,0 c -3.21031,0 -6.18293,-0.0933 -8.92345,-0.2793 -2.70138,-0.18602 -5.42285,-0.43607 -8.16338,-0.74609 l 0,-3.99805 c 2.74053,-0.27903 5.462,-0.51126 8.16338,-0.69726 2.70138,-0.18602 5.67399,-0.2793 8.92345,-0.2793 l 10.92425,0 0,6 z m -34.01346,-3 c 0,1.10006 -0.38681,2.04956 -1.15866,2.84961 -0.73829,0.76673 -1.69183,1.15039 -2.86637,1.15039 -1.17456,0 -2.13199,-0.38366 -2.87027,-1.15039 -0.73828,-0.80005 -1.10786,-1.74955 -1.10786,-2.84961 0,-1.13341 0.36958,-2.08291 1.10786,-2.84961 0.73828,-0.76673 1.69571,-1.15039 2.87027,-1.15039 1.17454,0 2.12808,0.38366 2.86637,1.15039 0.77185,0.7667 1.15866,1.7162 1.15866,2.84961 z"
id="path4942"
inkscape:connector-curvature="0" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.30533743;marker:none;enable-background:accumulate"
d="M 47.662109 8.0078125 A 6.3640012 6.3701355 0 0 0 42.492188 11.1875 L 4.8535156 76.443359 A 6.3640012 6.3701355 0 0 0 10.361328 86 L 85.638672 86 A 6.3640012 6.3701355 0 0 0 91.146484 76.443359 L 53.507812 11.1875 A 6.3640012 6.3701355 0 0 0 47.662109 8.0078125 z M 47.875 12.001953 C 48.76737 11.956551 49.592076 12.404702 50.041016 13.183594 L 50.041016 13.185547 L 87.679688 78.441406 C 87.931837 78.878323 88.055859 79.318869 88.068359 79.734375 C 88.105769 80.980902 87.142369 82.001373 85.636719 82.001953 L 10.361328 82.001953 C 8.3537581 82.001173 7.3097694 80.189075 8.3183594 78.441406 L 45.957031 13.183594 C 46.359741 12.48476 47.07443 12.045736 47.875 12.001953 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4192" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.5 KiB

View 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="media-playback-pause.svg">
<defs
id="defs4876" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6199992"
inkscape:cx="-6.6992958"
inkscape:cy="71.343403"
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: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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.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: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="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 417.99414,421.36133 -2,0 -54.02148,0 0,-24 56.02148,0 0,24 z m -4,-4 0,-16 -48.02148,0 0,16 48.02148,0 z"
id="rect4224"
inkscape:connector-curvature="0" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 417.99414,389.36133 -2,0 -54.02148,0 0,-24 56.02148,0 0,24 z m -4,-4 0,-16 -48.02148,0 0,16 48.02148,0 z"
id="rect4245"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -0,0 +1,163 @@
<?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="media-playback-start.svg">
<defs
id="defs4876" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.7646075"
inkscape:cx="67.233645"
inkscape:cy="47.23066"
inkscape:document-units="px"
inkscape:current-layer="g4778"
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: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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.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: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">
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
d="M 20.001953 12 L 20.001953 83.996094 C 20.001953 83.996094 58 67 84 48 C 58 29 20.001953 12 20.001953 12 z M 24.001953 18.28125 C 34.334003 23.178222 57.749241 34.833899 76.925781 48 C 57.749301 61.165751 34.333893 72.818891 24.001953 77.714844 L 24.001953 18.28125 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4174" />
<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>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -0,0 +1,163 @@
<?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="media-playback-stop.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.024999"
inkscape:cx="-18.014243"
inkscape:cy="53.017783"
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: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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.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: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="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 417.99414,421.36328 -2,0 -54.02148,0 0,-56.00195 56.02148,0 0,56.00195 z m -4,-4 0,-48.00195 -48.02148,0 0,48.00195 48.02148,0 z"
id="rect4224"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,174 @@
<?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="media-seek-backward.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.7812487"
inkscape:cx="3.2695045"
inkscape:cy="58.687538"
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: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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.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: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="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
d="M 51.867188 24 C 51.867188 24 29.61855 33.297204 8.03125 47.923828 C 8.03125 47.928126 8.0273906 47.933502 8.0253906 47.9375 C 8.0233906 47.942398 8.018625 47.949127 8.015625 47.953125 C 8.009125 47.958023 8.0059064 47.964752 8.0039062 47.96875 C 8.0009062 47.973048 8 47.980377 8 47.984375 C 28.46579 62.158978 51.867188 71.996094 51.867188 71.996094 L 51.867188 53.136719 C 70.08364 64.486831 88 71.996094 88 71.996094 L 88 24 C 88 24 70.74969 31.191175 51.867188 42.867188 L 51.867188 24 z M 47.767578 30.480469 L 47.769531 65.507812 C 41.719049 62.794896 30.055236 57.192117 15.71875 47.986328 C 30.540668 38.581589 41.832654 33.139097 47.767578 30.480469 z M 83.761719 30.480469 L 83.763672 65.507812 C 77.714062 62.794896 66.051216 57.192117 51.716797 47.986328 C 66.536577 38.581589 77.827651 33.139097 83.761719 30.480469 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4195" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
d="m 388.43206,425.65086 c -0.12331,0.0552 -0.008,0.0131 -0.0996,0.0586 a 4.0244714,4.0244712 0 0 0 -0.21883,0.10547 c -0.002,10e-4 0.01,-0.007 0.008,-0.006 l 0.31067,-0.15821 z"
id="path2194-5"
inkscape:connector-curvature="0" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6.00118685;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 365.97461,429.36074 0,4.00195 48.01758,0 1.0004,-4.00195 z"
id="path4199"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -0,0 +1,173 @@
<?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="media-seek-forward.svg">
<defs
id="defs4876" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6199992"
inkscape:cx="42.838078"
inkscape:cy="40.25799"
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: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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.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: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="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
d="M 8 24 L 8 71.996094 C 8 71.996094 25.91636 64.486831 44.132812 53.136719 L 44.132812 71.996094 C 44.132812 71.996094 67.53421 62.158978 88 47.984375 C 88 47.980377 87.999094 47.973048 87.996094 47.96875 C 87.994094 47.964752 87.992828 47.958023 87.986328 47.953125 C 87.983328 47.949127 87.976609 47.942398 87.974609 47.9375 C 87.972609 47.933502 87.96875 47.928126 87.96875 47.923828 C 66.38145 33.297204 44.132812 24 44.132812 24 L 44.132812 42.867188 C 25.250348 31.191209 8 24 8 24 z M 12.238281 30.480469 C 18.172349 33.139097 29.463423 38.581589 44.283203 47.986328 C 29.948784 57.192117 18.285938 62.794896 12.236328 65.507812 L 12.238281 30.480469 z M 48.232422 30.480469 C 54.167346 33.139097 65.459332 38.581589 80.28125 47.986328 C 65.944764 57.192117 54.280951 62.794896 48.230469 65.507812 L 48.232422 30.480469 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4195" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
d="m 388.43206,361.07316 c -0.12331,-0.0552 -0.008,-0.0131 -0.0996,-0.0586 a 4.0244714,4.0244712 0 0 1 -0.21883,-0.10547 c -0.002,-0.001 0.01,0.007 0.008,0.006 l 0.31067,0.15821 z"
id="path2194-5" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6.00118685;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 365.97461,353.36133 0,4.00195 48.01758,0 1.0004,-4.00195 z"
id="path4199"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -15,7 +15,7 @@
version="1.1"
inkscape:version="0.91+devel r"
viewBox="0 0 96 96.000001"
sodipodi:docname="weather-sleet-symbolic.svg">
sodipodi:docname="media-skip-backward.svg">
<defs
id="defs4876" />
<sodipodi:namedview
@ -25,12 +25,12 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="4.4959994"
inkscape:cx="-5.7050793"
inkscape:cy="51.668128"
inkscape:zoom="8.7812487"
inkscape:cx="18.244596"
inkscape:cy="54.434157"
inkscape:document-units="px"
inkscape:current-layer="g4780"
showgrid="false"
showgrid="true"
showborder="true"
fit-margin-top="0"
fit-margin-left="0"
@ -49,8 +49,7 @@
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-global="true">
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid5451"
@ -79,6 +78,10 @@
orientation="0,1"
position="-5,8.0000001"
id="guide4073" />
<sodipodi:guide
orientation="1,0"
position="92,-8.0000001"
id="guide4075" />
<sodipodi:guide
orientation="1,0"
position="88,-8.0000001"
@ -91,9 +94,13 @@
orientation="1,0"
position="12,-8.0000001"
id="guide4076" />
<sodipodi:guide
orientation="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-8.0000001"
position="84,-9.0000001"
id="guide4080" />
<sodipodi:guide
position="48,-8.0000001"
@ -103,10 +110,6 @@
position="-8,48"
orientation="0,1"
id="guide4172" />
<sodipodi:guide
position="92,-8.0000001"
orientation="1,0"
id="guide4760" />
</sodipodi:namedview>
<metadata
id="metadata4879">
@ -150,31 +153,20 @@
transform="scale(-1,1)" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
d="m 345.96605,392.78972 c 0,3.9778 3.22457,7.2025 7.20239,7.2025 0.78983,0 1.54761,-0.1332 2.2587,-0.3681 0.0723,-0.024 0.14686,-0.043 0.21814,-0.069 0.60704,-0.1834 9.42924,-2.8722 17.34073,-6.7728 0,0 -5.6e-4,0 -0.002,0 -5.6e-4,0 -0.002,0 -0.004,0 -10e-4,0 -0.003,0 -0.004,0 -8.5e-4,0 -0.002,0 -0.002,0 -8.64071,-4.1676 -17.54714,-6.8168 -17.54714,-6.8168 l 0,0 c -0.71068,-0.2346 -1.46936,-0.3634 -2.25867,-0.3634 -3.97783,0 -7.2024,3.2246 -7.2024,7.2024 z"
id="path4253"
inkscape:connector-curvature="0"
inkscape:transform-center-y="-47.999153" />
d="m 388.43206,425.65086 c -0.12331,0.0552 -0.008,0.0131 -0.0996,0.0586 a 4.0244714,4.0244712 0 0 0 -0.21883,0.10547 c -0.002,10e-4 0.01,-0.007 0.008,-0.006 l 0.31067,-0.15821 z"
id="path2194-5"
inkscape:connector-curvature="0" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#808080;fill-opacity:1;stroke:none;stroke-width:4;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 51.046875,6.2285156 c -10.2287,0 -18.920473,6.3045104 -23.070313,15.3105464 l -0.277343,0.603516 -0.66211,0.04883 C 17.596749,22.879034 10.125,31.04039 10.125,40.974609 c 0,10.381453 8.126595,18.904297 18.171875,18.904297 l 22.75,0 21.205078,0 c 7.53212,0 13.621094,-6.396318 13.621094,-14.15039 0,-5.880084 -3.52978,-10.812395 -8.537109,-12.939454 l -0.652344,-0.277343 -0.03125,-0.707031 C 76.009894,17.628506 64.866505,6.2285156 51.046875,6.2285156 Z m -2.636719,3.9316404 2.714844,0 0.002,0 c 11.71084,4e-5 21.227703,9.518419 21.226563,21.228516 l 0,0.002 0,0.002 c -0.005,1.437861 -0.311319,2.843663 -0.605469,4.248047 5.55037,0.01369 10.070272,4.535148 10.070312,10.087891 l -0.002,0 c -4e-5,5.561129 -4.53189,10.09371 -10.09375,10.09375 l -42.773437,-0.02148 c -8.13181,2.8e-4 -14.748317,-6.616964 -14.748047,-14.748047 -2.7e-4,-8.131083 6.616237,-14.746373 14.748047,-14.746093 l 0.002,0 0.0059,0 c 0.53755,0.003 1.068253,0.09102 1.601563,0.152343 2.07759,-8.66921 9.098292,-15.254511 17.851562,-16.298828 z"
id="path4233"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6.00118685;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 365.97461,417.36222 0,4.00047 48.01758,0 1.0004,-4.00047 z"
id="path4199"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.99999976;marker:none;enable-background:accumulate"
d="M 76 16 C 76 16 42.749507 31.111222 19.998047 48 C 42.749507 64.888778 76 79.996094 76 79.996094 L 76 16 z M 71.998047 22.455078 L 71.998047 73.541016 C 65.108767 70.289552 45.443994 60.775545 26.996094 48 C 45.444144 35.224185 65.109057 25.707071 71.998047 22.455078 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
inkscape:connector-curvature="0"
sodipodi:nodetypes="scccsscsscccsccsccccccccccccccc" />
<path
id="path4342"
d="m 372.37111,409.42577 -0.55109,2.7543 -3.40018,0 1.83786,3.1822 -2.38626,1.3771 -1.83786,-3.182 -1.83786,3.182 -2.38626,-1.3771 1.83786,-3.1822 -3.67572,0 0,-2.7543 3.67572,0 -1.83786,-3.182 2.38626,-1.3772 1.83786,3.182 1.83786,-3.182 2.38626,1.3772 -1.83786,3.182 3.95127,0 z"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:12.0023737;marker:none;enable-background:accumulate"
inkscape:connector-curvature="0"
inkscape:transform-center-x="16.396404"
inkscape:transform-center-y="-15.80467" />
<path
inkscape:connector-curvature="0"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:12.0023737;marker:none;enable-background:accumulate"
d="m 374.20641,373.36217 -0.63266,3.1621 -3.90345,0 2.10989,3.6529 -2.73946,1.581 -2.10989,-3.6529 -2.10989,3.6529 -2.73946,-1.581 2.10989,-3.6529 -4.21978,0 0,-3.1621 4.21978,0 -2.10989,-3.653 2.73946,-1.5811 2.10989,3.6531 2.10989,-3.6531 2.73946,1.5811 -2.10989,3.653 4.53611,0 z"
id="path4344"
inkscape:transform-center-x="-17.185"
inkscape:transform-center-y="-16.809946" />
id="path4187" />
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -0,0 +1,175 @@
<?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="media-skip-forward.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.7812487"
inkscape:cx="18.244596"
inkscape:cy="54.434157"
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: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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.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: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="rotate(180,287.99999,698.86221)"
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="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
d="m 388.43206,425.65086 c -0.12331,0.0552 -0.008,0.0131 -0.0996,0.0586 a 4.0244714,4.0244712 0 0 0 -0.21883,0.10547 c -0.002,10e-4 0.01,-0.007 0.008,-0.006 l 0.31067,-0.15821 z"
id="path2194-5"
inkscape:connector-curvature="0" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6.00118685;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 365.97461,421.36269 0,-4.00048 48.01758,0 1.0004,4.00048 z"
id="path4199"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.99999976;marker:none;enable-background:accumulate"
d="M 76,16 C 76,16 42.749507,31.111222 19.998047,48 42.749507,64.888778 76,79.996094 76,79.996094 L 76,16 Z m -4.001953,6.455078 0,51.085938 C 65.108767,70.289552 45.443994,60.775545 26.996094,48 45.444144,35.224185 65.109057,25.707071 71.998047,22.455078 Z"
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4187"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -15,7 +15,7 @@
version="1.1"
inkscape:version="0.91+devel r"
viewBox="0 0 96 96.000001"
sodipodi:docname="weather-severe-alert-symbolic.svg">
sodipodi:docname="navigation-menu.svg">
<defs
id="defs4876" />
<sodipodi:namedview
@ -25,9 +25,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8774396"
inkscape:cx="-111.85292"
inkscape:cy="72.477584"
inkscape:zoom="5.6199993"
inkscape:cx="-2.8914655"
inkscape:cy="39.270445"
inkscape:document-units="px"
inkscape:current-layer="g4780"
showgrid="true"
@ -75,6 +75,10 @@
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"
@ -112,7 +116,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@ -145,15 +149,23 @@
y="345.36221"
transform="scale(-1,1)" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:12;marker:none;enable-background:accumulate"
d="M 58.775391 12 C 51.267821 12.008996 44.217031 15.647545 39.806641 21.791016 C 38.172881 21.32443 36.482826 21.086486 34.785156 21.080078 C 24.704426 21.091474 16.442264 29.170022 16.089844 39.357422 C 9.1976435 40.193651 4.0088 46.099857 4 53.119141 C 3.99979 60.784838 10.143819 66.99996 17.724609 67 L 38.46875 67 L 40.761719 63 L 17.724609 63 C 12.331119 62.99997 7.99985 58.648413 8 53.119141 C 8.00827 48.069238 11.680056 43.919737 16.572266 43.326172 L 19.96875 42.916016 L 20.087891 39.496094 C 20.368061 31.397437 26.838194 25.095472 34.777344 25.080078 C 36.105594 25.085826 37.428491 25.271583 38.707031 25.636719 L 41.414062 26.410156 L 43.056641 24.123047 C 46.724441 19.013968 52.557334 16.009996 58.771484 16 C 69.379384 16.005708 78.001559 24.515796 78.230469 35.314453 L 78.285156 37.845703 L 80.59375 38.878906 C 85.08457 40.89126 87.998047 45.388102 87.998047 50.394531 C 87.998127 57.428279 82.459285 63.00016 75.578125 63 L 65.042969 63 L 67.335938 67 L 75.580078 67 C 84.648808 67.00021 92.0001 59.564824 92 50.394531 C 92 43.831238 88.166562 37.889587 82.232422 35.230469 C 81.958882 22.326463 71.539291 12.006867 58.775391 12 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4199" />
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:accumulate"
d="m 416.99416,429.36224 -4.0016,0 0,-72.00002 4.0016,0 z"
id="path4182"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ed3146;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.74845123;marker:none;enable-background:accumulate"
d="m 392.98074,382.62784 a 3.1863526,3.1620789 0 0 1 -1.59048,2.56836 l -32.63986,18.70118 a 3.1863526,3.1620789 0 0 1 -4.78119,-2.73633 l 0,-37.40235 a 3.1863526,3.1620789 0 0 1 4.78119,-2.73828 l 32.63986,18.70313 a 3.1863526,3.1620789 0 0 1 1.59048,2.90429 z m -11.92464,1.73438 0,-3.94531 -5.88124,0 c -1.74947,0 -3.3522,0.0613 -4.80658,0.18359 -1.45438,0.12237 -2.91886,0.27549 -4.39432,0.45899 l 0,2.63085 c 1.47546,0.20381 2.93994,0.36591 4.39432,0.48829 1.47546,0.12238 3.07819,0.18359 4.80658,0.18359 l 5.88124,0 z m -17.08293,-2 c 0,-0.71227 -0.24108,-1.30922 -0.72294,-1.79102 -0.46092,-0.4818 -1.05846,-0.72265 -1.79173,-0.72265 -0.73327,0 -1.32886,0.24085 -1.78977,0.72265 -0.46091,0.4818 -0.69168,1.07875 -0.69168,1.79102 0,0.69127 0.23077,1.28828 0.69168,1.79102 0.46091,0.48186 1.0565,0.72265 1.78977,0.72265 0.73327,0 1.33081,-0.24079 1.79173,-0.72265 0.48186,-0.50274 0.72294,-1.09975 0.72294,-1.79102 z"
id="path17"
inkscape:connector-curvature="0" />
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:accumulate"
d="m 391.98426,429.36224 -4.00159,0 0,-72.00002 4.00159,0 z"
id="path4180"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;marker:none;enable-background:accumulate"
d="m 366.97436,429.36224 -4.00158,0 0,-72.00002 4.00158,0 z"
id="rect4067"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,160 @@
<?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="network-wired-symbolic.svg">
<defs
id="defs4876" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6199994"
inkscape:cx="-62.927059"
inkscape:cy="26.619198"
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 />
</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="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 23.976562 8.0019531 C 18.943803 8.0601401 15.26124 7.8815461 12.25 9.5429688 C 10.74438 10.37368 9.5531413 11.778707 8.8945312 13.533203 C 8.2359313 15.287699 7.9980469 17.369641 7.9980469 20 L 7.9980469 76 C 7.9980469 78.630359 8.2359313 80.714254 8.8945312 82.46875 C 9.5531413 84.223246 10.74438 85.62632 12.25 86.457031 C 15.26124 88.118454 18.943803 87.941823 23.976562 88 L 23.988281 88 L 72.009766 88 L 72.021484 88 C 77.054244 87.941823 80.736807 88.118454 83.748047 86.457031 C 85.253667 85.62632 86.444916 84.223246 87.103516 82.46875 C 87.762116 80.714254 88 78.630359 88 76 L 88 20 C 88 17.369641 87.762116 15.287699 87.103516 13.533203 C 86.444916 11.778707 85.253667 10.37368 83.748047 9.5429688 C 80.736807 7.8815461 77.054244 8.0601301 72.021484 8.0019531 L 72.009766 8.0019531 L 23.988281 8.0019531 L 23.976562 8.0019531 z M 24.021484 12 L 71.998047 12 C 77.036307 12.058767 80.350163 12.237002 81.814453 13.044922 C 82.547973 13.449632 82.967112 13.897711 83.357422 14.9375 C 83.747742 15.977279 83.998047 17.630358 83.998047 20 L 83.998047 76 C 83.998047 78.369642 83.747742 80.022711 83.357422 81.0625 C 82.967112 82.102279 82.547973 82.550368 81.814453 82.955078 C 80.350163 83.762988 77.036307 83.941223 71.998047 84 L 71.974609 84 L 24.021484 84 L 24 84 C 18.96042 83.941263 15.648104 83.763108 14.183594 82.955078 C 13.450074 82.550368 13.030935 82.102279 12.640625 81.0625 C 12.250305 80.022711 12 78.369642 12 76 L 12 20 C 12 17.630358 12.250305 15.977279 12.640625 14.9375 C 13.030935 13.897711 13.450074 13.449632 14.183594 13.044922 C 15.650624 12.235492 18.967304 12.058477 24.021484 12 z M 36 25 L 36 30 L 24 30 L 24 70 L 72 70 L 72 30 L 60 30 L 60 25 L 36 25 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4297" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -0,0 +1,180 @@
<?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="notification.svg">
<defs
id="defs4876" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="17.150877"
inkscape:cx="32.231586"
inkscape:cy="13.532829"
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: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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.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: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:15px;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;fill:#808080;fill-opacity:1;stroke:none"
d="m 47.974609,4 c -4.04797,6e-5 -7.330008,3.2821097 -7.330078,7.330078 0.002,1.522038 0.477738,3.004831 1.361328,4.244141 -2.00338,0.343264 -3.853165,0.860341 -5.541015,1.574219 -3.25143,1.375085 -5.91911,3.240368 -8,5.597656 -2.08089,2.422761 -3.639248,5.27285 -4.679688,8.546875 -0.9754,3.274004 -1.464844,6.809554 -1.464844,10.607422 l 0,19.503906 c 0,2.158166 -0.202214,4.132937 -0.609374,5.923828 -0.407171,1.791691 -1.120582,3.317748 -2.138672,4.580078 -0.97723,1.303035 -2.300993,2.301875 -3.970704,2.994141 -1.62718,0.714377 -3.669884,1.069434 -6.1093745,1.085937 l 0,0.01172 12.8281245,0 51.306641,0 12.880859,0 0,-0.01172 c -2.44977,-0.01649 -4.498662,-0.370484 -6.132812,-1.08789 -1.67664,-0.695195 -3.007021,-1.697277 -3.988281,-3.00586 -1.02249,-1.267718 -1.737685,-2.80615 -2.146485,-4.605469 -0.40901,-1.798538 -0.613281,-3.779923 -0.613281,-5.947265 l 0,-19.441406 c 0,-3.797868 -0.520097,-7.333418 -1.560547,-10.607422 -0.97539,-3.274025 -2.533747,-6.124114 -4.679687,-8.546875 -2.08107,-2.357288 -4.750513,-4.222571 -8.001953,-5.597656 -1.6479,-0.711129 -3.467043,-1.226959 -5.445313,-1.570313 0.88509,-1.239739 1.362914,-2.72478 1.365235,-4.248047 C 55.304618,7.2821097 52.022579,4.00006 47.974609,4 Z m -1.652343,15.121094 1.671875,0 c 1.82566,2.6e-4 3.64097,0.124247 5.25,0.378906 l 0.0059,0.002 0.0078,0 c 1.717331,0.298072 3.229779,0.736607 4.542969,1.302735 l 0.02734,0.01172 0.0039,0.002 c 2.77158,1.172147 4.908894,2.690579 6.558594,4.556641 l 0.01172,0.01367 c 1.74937,1.975028 3.02073,4.278438 3.84375,7.041016 0.013,0.04248 0.02338,0.07609 0.01758,0.05859 l 0.002,0.0059 0.002,0.0039 c 0.9056,2.849682 1.373047,5.968861 1.373047,9.402344 l 0,19.441406 c 0,2.419872 0.227891,4.694709 0.712891,6.828125 l 0,0.0039 0.002,0.0098 c 0.18337,0.803092 0.501017,1.608005 0.841797,2.460937 l 0.548828,1.371094 -0.002,0 -47.527344,0 0.544922,-1.369141 c 0.33741,-0.847164 0.653984,-1.64351 0.833984,-2.435546 0.48434,-2.130399 0.708985,-4.398964 0.708985,-6.806641 l 0,-19.503906 c 0,-3.438721 0.442202,-6.565089 1.289062,-9.423829 l 0.002,-0.0098 0.0059,-0.01172 c 0.88905,-2.778071 2.172785,-5.106167 3.865235,-7.083984 l 0.0059,-0.0059 0.0059,-0.0078 c 1.64572,-1.855796 3.777485,-3.370325 6.541015,-4.539063 1.36067,-0.575492 2.909656,-1.018428 4.660157,-1.318359 l 0.0078,0 0.0078,-0.002 c 1.140341,-0.17605 2.42688,-0.20894 3.6875,-0.261719 z"
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4161"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccssccccccccccccssccccccccccccccccccccsscccccccccsscccccccccccc" />
<path
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;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;fill:#808080;fill-opacity:1;stroke:none"
d="m 364.0904,368.96573 c -0.0215,-0.0161 -0.0354,-0.0404 -0.0567,-0.0566 -0.0253,-0.0201 -0.057,-0.0305 -0.0821,-0.0508 z"
id="path4157" />
<path
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;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;fill:#808080;fill-opacity:1;stroke:none"
d="m 364.07673,417.80167 -0.13873,0.10742 c 0.0251,-0.0203 0.0569,-0.0307 0.0821,-0.0508 0.0214,-0.0162 0.0353,-0.0405 0.0567,-0.0566 z"
id="path4344" />
<path
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;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;fill:#808080;fill-opacity:1;stroke:none"
d="m 35.84375,80 c 0.07501,6.651682 5.488524,12.004476 12.140625,12.004476 6.652101,0 12.065611,-5.352794 12.140625,-12.004476 z"
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4608"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cscc" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@ -0,0 +1,227 @@
<?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.2 (5c3e80d, 2017-08-06)"
viewBox="0 0 96 96.000001"
sodipodi:docname="sensors.svg">
<defs
id="defs4876" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="9.9068602"
inkscape:cx="71.167364"
inkscape:cy="44.687369"
inkscape:document-units="px"
inkscape:current-layer="g4780"
showgrid="false"
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="g4746"
transform="matrix(0.75,0,0,0.75,97.476086,118.34055)">
<path
sodipodi:nodetypes="ssscssscs"
inkscape:connector-curvature="0"
d="m -371.76101,-367.97522 c 0,11.13793 -9.67118,20.16701 -21.60118,20.16701 -11.93001,0 -21.60119,-9.02908 -21.60119,-20.16701 0,-7.7834 4.72291,-14.53695 11.63913,-17.89899 v -36.69394 c 0,-5.54 4.42204,-9.43231 9.96204,-9.43231 5.54,0 9.98905,4.46001 10,10 l 0.0715,36.17981 c 6.85656,3.37986 11.5297,10.10314 11.5297,17.84543 z"
style="fill:none;stroke:#808080;stroke-width:4.00079155;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0,-1,-1,0,0,0)"
id="rect4596" />
<path
d="m -393.36221,-412.68994 c 1.662,0 3,1.33853 3,3.00119 v 39.41058 c 0,1.66266 -1.338,3.00119 -3,3.00119 -1.662,0 -3,-1.33853 -3,-3.00119 v -39.41058 c 0,-1.66266 1.338,-3.00119 3,-3.00119 z m 13.66839,44.26285 a 13.696771,12.809413 0 0 1 -13.69677,12.80941 13.696771,12.809413 0 0 1 -13.69678,-12.80941 13.696771,12.809413 0 0 1 13.69678,-12.80942 13.696771,12.809413 0 0 1 13.69677,12.80942 z"
style="fill:#808080;fill-opacity:1;stroke:#808080;stroke-width:4.00079155;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0,-1,-1,0,0,0)"
id="rect4609"
inkscape:connector-curvature="0" />
</g>
<g
transform="matrix(0,-0.75,-0.75029678,0,484.8993,358.46935)"
id="layer1-2"
inkscape:label="Layer 1">
<g
style="display:inline"
id="g4845-6"
transform="matrix(0,-1,-1,0,373.50506,516.50504)">
<g
inkscape:label="Layer 1"
id="g4778-1"
transform="matrix(-0.9996045,0,0,1,575.94296,-611.00001)"
inkscape:export-filename="next01.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<g
style="display:inline"
id="g4780-8"
transform="matrix(-1,0,0,1,575.99999,611)">
<rect
transform="scale(-1,1)"
y="345.36221"
x="-438.00244"
height="96"
width="96.037987"
id="rect4782-7"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:4;marker:none;enable-background:accumulate" />
<path
id="path4185"
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
d="M 48.048828,3.9980469 C 35.339788,29.765082 26.577949,58.499495 25.980469,60.476562 c -0.0848,0.232149 -0.14708,0.473418 -0.22461,0.708985 -0.76552,2.315984 -1.199218,4.785 -1.199218,7.357422 C 24.556641,81.498363 35.065011,92 48.025391,92 60.963251,91.97331 71.443359,81.483872 71.443359,68.544922 c 0,-2.570723 -0.421276,-5.042778 -1.185547,-7.357422 0,0 -8.630054,-29.006362 -22.208984,-57.1484375 V 4.03125 4.0195312 4.0058594 Z m -0.03906,9.8417971 C 59.209548,38.806795 66.42383,62.328125 66.42383,62.328125 l 0.01563,0.05859 0.01953,0.05664 c 0.63557,1.924869 0.982422,3.964814 0.982422,6.09961 h 0.002 C 67.443359,79.320455 58.800601,87.97351 48.025391,88 h -0.0059 -0.0039 C 37.221101,87.9958 28.556607,79.332206 28.556607,68.541016 c 0,-2.12324 0.354983,-4.160037 0.996093,-6.09961 l 0.002,-0.002 v -0.002 c 0.131789,-0.400452 0.188593,-0.602839 0.183593,-0.589844 l 0.03906,-0.105468 0.0332,-0.109376 C 30.320007,59.947 37.570226,36.847661 48.009766,13.839844 Z"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@ -15,7 +15,7 @@
version="1.1"
inkscape:version="0.91+devel r"
viewBox="0 0 96 96.000001"
sodipodi:docname="weather-flurries-symbolic.svg">
sodipodi:docname="settings.svg">
<defs
id="defs4876" />
<sodipodi:namedview
@ -25,12 +25,12 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="10.976561"
inkscape:cx="22.142635"
inkscape:cy="33.448534"
inkscape:zoom="4.4959995"
inkscape:cx="-16.425718"
inkscape:cy="47.675692"
inkscape:document-units="px"
inkscape:current-layer="g4780"
showgrid="false"
showgrid="true"
showborder="true"
fit-margin-top="0"
fit-margin-left="0"
@ -79,6 +79,10 @@
orientation="0,1"
position="-5,8.0000001"
id="guide4073" />
<sodipodi:guide
orientation="1,0"
position="92,-8.0000001"
id="guide4075" />
<sodipodi:guide
orientation="1,0"
position="88,-8.0000001"
@ -91,9 +95,13 @@
orientation="1,0"
position="12,-8.0000001"
id="guide4076" />
<sodipodi:guide
orientation="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-8.0000001"
position="84,-9.0000001"
id="guide4080" />
<sodipodi:guide
position="48,-8.0000001"
@ -103,10 +111,6 @@
position="-8,48"
orientation="0,1"
id="guide4172" />
<sodipodi:guide
position="92,-8.0000001"
orientation="1,0"
id="guide4760" />
</sodipodi:namedview>
<metadata
id="metadata4879">
@ -149,28 +153,19 @@
y="345.36221"
transform="scale(-1,1)" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:12.0023737;marker:none;enable-background:accumulate"
d="m 367.97249,391.36237 -0.80021,3.9995 -4.93727,0 2.66869,4.6205 -3.465,1.9998 -2.66869,-4.6205 -2.66868,4.6205 -3.46499,-1.9998 2.66867,-4.6205 -5.33737,0 0,-3.9995 5.33737,0 -2.66867,-4.6204 3.46499,-1.9998 2.66868,4.6205 2.66869,-4.6205 3.465,1.9998 -2.66869,4.6204 5.73748,0 z"
id="rect4315"
inkscape:connector-curvature="0"
inkscape:transform-center-x="-4.9970432e-05"
inkscape:transform-center-y="-8.9988672" />
<path
id="path4342"
d="m 372.37111,409.42577 -0.55109,2.7543 -3.40018,0 1.83786,3.1822 -2.38626,1.3771 -1.83786,-3.182 -1.83786,3.182 -2.38626,-1.3771 1.83786,-3.1822 -3.67572,0 0,-2.7543 3.67572,0 -1.83786,-3.182 2.38626,-1.3772 1.83786,3.182 1.83786,-3.182 2.38626,1.3772 -1.83786,3.182 3.95127,0 z"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:12.0023737;marker:none;enable-background:accumulate"
inkscape:connector-curvature="0"
inkscape:transform-center-x="16.396404"
inkscape:transform-center-y="-15.80467" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00079107;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 415.60547,384.36133 c -3.97616,0 -6.7935,1.6624 -8.1582,3.98242 -1.36471,2.32002 -1.45704,4.90895 -1.45704,7.01758 l 0,24 4,0 0,-24 c 0,-1.90524 0.21419,-3.81372 0.90625,-4.99024 0.69207,-1.17651 1.68239,-2.00781 4.70899,-2.00781 1.87806,0 2.72133,0.70859 3.40625,1.73633 0.68492,1.02774 0.98437,2.49609 0.98437,3.26172 0,2.67583 -2.61914,3.4668 -2.61914,3.46679 l 1.29493,3.78516 c 0,0 5.32421,-1.92778 5.32421,-7.25195 0,-1.56143 -0.3944,-3.58997 -1.65429,-5.48047 -1.2599,-1.8905 -3.6124,-3.51953 -6.73633,-3.51953 z"
id="path4194"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.0007925;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 371.94351,362.16529 c 17.19788,-9.91601 39.26149,-3.98444 49.20927,13.22273 9.94779,17.20716 4.05873,39.25353 -13.13915,49.16953 -17.19788,9.91601 -39.26053,3.98613 -49.20832,-13.22104 -9.94778,-17.20717 -4.05969,-39.25522 13.1382,-49.17122 z m 2.00297,3.46463 c -15.32206,8.83444 -20.54308,28.37061 -11.67591,43.70858 8.86716,15.33798 28.41901,20.59054 43.74106,11.7561 15.32205,-8.83443 20.54307,-28.37061 11.6759,-43.70858 -8.86716,-15.33797 -28.41901,-20.59053 -43.74105,-11.7561 z"
id="path5417"
inkscape:connector-curvature="0" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00079107;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 403.60156,349.36133 c -3.97615,0 -6.7935,1.6624 -8.1582,3.98242 -1.36471,2.32002 -1.45703,4.90895 -1.45703,7.01758 l 0,24 0,42 c 0,2 -0.0842,4.03363 -0.58985,5.21289 -0.50559,1.17926 -0.96637,1.78711 -3.4121,1.78711 -2.44574,0 -2.90847,-0.60785 -3.41407,-1.78711 -0.5056,-1.17926 -0.58789,-3.21289 -0.58789,-5.21289 l 0,-27 0,-24 c 0,-2.10863 -0.0943,-4.69756 -1.45898,-7.01758 -1.36471,-2.32002 -4.18205,-3.98242 -8.15821,-3.98242 -3.12392,0 -5.47448,1.62903 -6.73437,3.51953 -1.25989,1.8905 -1.65625,3.91904 -1.65625,5.48047 0,5.32417 5.32617,7.25195 5.32617,7.25195 l 1.29297,-3.78516 c 0,0 -2.61719,-0.79096 -2.61719,-3.46679 0,-0.76563 0.29751,-2.23398 0.98242,-3.26172 0.68492,-1.02774 1.52819,-1.73633 3.40625,-1.73633 3.02661,0 4.01888,0.8313 4.71094,2.00781 0.69207,1.17652 0.9043,3.085 0.9043,4.99024 l 0,24 0,27 c 0,2 -0.0829,4.46832 0.91211,6.78906 0.99499,2.32074 3.53516,4.21289 7.0918,4.21289 3.55663,0 6.09484,-1.89215 7.08984,-4.21289 0.99499,-2.32074 0.91211,-4.78906 0.91211,-6.78906 l 0,-42 0,-24 c 0,-1.90524 0.21223,-3.81372 0.90429,-4.99024 0.69207,-1.17651 1.68434,-2.00781 4.71094,-2.00781 1.87806,0 2.72133,0.70859 3.40625,1.73633 0.68492,1.02774 0.98242,2.49609 0.98242,3.26172 0,2.67583 -2.61718,3.46679 -2.61718,3.46679 l 1.29297,3.78516 c 0,0 5.32617,-1.92778 5.32617,-7.25195 0,-1.56143 -0.39636,-3.58997 -1.65625,-5.48047 -1.2599,-1.8905 -3.61045,-3.51953 -6.73438,-3.51953 z"
id="path4196"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
d="M 54.902344 5.5820312 L 41.097656 7.6445312 L 41.097656 14.742188 A 34.033369 33.971264 43.145308 0 1 54.902344 14.769531 L 54.902344 5.5839844 L 54.902344 5.5820312 z M 26.65625 11.826172 L 16.138672 20.767578 L 21.320312 26.943359 A 34.033369 33.971264 43.145308 0 1 31.900391 18.076172 L 26.65625 11.826172 z M 69.287109 11.892578 L 64.080078 18.099609 A 34.033369 33.971264 43.145308 0 1 64.974609 18.574219 A 34.033369 33.971264 43.145308 0 1 74.648438 26.980469 L 79.919922 20.699219 L 69.287109 11.892578 z M 8.3984375 34.007812 L 6.0878906 47.619141 L 14.035156 49.021484 A 34.033369 33.971264 43.145308 0 1 16.421875 35.423828 L 8.3984375 34.007812 z M 87.515625 34.023438 L 79.529297 35.431641 A 34.033369 33.971264 43.145308 0 1 81.960938 49.019531 L 90 47.603516 L 87.515625 34.023438 z M 15.757812 58.644531 L 8.6699219 62.738281 L 8.6679688 62.738281 L 15.648438 74.648438 L 22.666016 70.597656 A 34.033369 33.971264 43.145308 0 1 15.757812 58.644531 z M 80.269531 58.660156 A 34.033369 33.971264 43.145308 0 1 77.464844 65.03125 A 34.033369 33.971264 43.145308 0 1 73.40625 70.638672 L 80.427734 74.693359 L 87.253906 62.693359 L 80.269531 58.660156 z M 30.148438 76.867188 L 27.34375 84.570312 L 40.347656 89.208984 L 43.105469 81.628906 A 34.033369 33.971264 43.145308 0 1 31.025391 77.433594 A 34.033369 33.971264 43.145308 0 1 30.148438 76.867188 z M 65.880859 76.947266 A 34.033369 33.971264 43.145308 0 1 52.902344 81.654297 L 55.683594 89.292969 L 68.625 84.486328 L 65.880859 76.947266 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4168" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.0007925;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 377.95161,372.55694 c 11.46388,-6.60993 26.18875,-2.6521 32.81902,8.81669 6.63028,11.4688 2.70094,26.18465 -8.76295,32.79458 -11.46388,6.60992 -26.19142,2.65138 -32.82169,-8.81742 -6.63028,-11.46878 -2.69827,-26.18392 8.76562,-32.79385 z m 2.00198,3.46296 c -9.58805,5.52834 -12.85033,17.73231 -7.30067,27.3319 5.54967,9.5996 17.76375,12.8801 27.3518,7.35175 9.58805,-5.52834 12.85033,-17.73231 7.30067,-27.3319 -5.54967,-9.5996 -17.76375,-12.8801 -27.3518,-7.35175 z"
id="ellipse4539"
inkscape:connector-curvature="0" />
</g>
</g>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@ -0,0 +1,174 @@
<?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="share.svg">
<defs
id="defs4876" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.951479"
inkscape:cx="-66.059911"
inkscape:cy="38.952069"
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: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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.0000001"
id="guide4080" />
<sodipodi:guide
position="48,83.568528"
orientation="1,0"
id="guide4170" />
</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="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00079107;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 362.97266,406.36133 c -7.15818,0 -13.00391,-5.84338 -13.00391,-13 0,-7.15663 5.84573,-13 13.00391,-13 7.15817,0 13.00586,5.84337 13.00586,13 0,7.15662 -5.84769,13 -13.00586,13 z m 0,-4 c 4.99683,0 9.0039,-4.00642 9.0039,-9 0,-4.99358 -4.00707,-9 -9.0039,-9 -4.99684,0 -9.00391,4.00642 -9.00391,9 0,4.99358 4.00707,9 9.00391,9 z"
id="path4184"
inkscape:connector-curvature="0" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00079107;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 416.99414,379.36133 c -7.15817,0 -13.00391,-5.84338 -13.00391,-13 0,-7.15663 5.84574,-13 13.00391,-13 7.15817,0 13.00586,5.84337 13.00586,13 0,7.15662 -5.84769,13 -13.00586,13 z m 0,-4 c 4.99684,0 9.00391,-4.00642 9.00391,-9 0,-4.99358 -4.00707,-9 -9.00391,-9 -4.99684,0 -9.00391,4.00642 -9.00391,9 0,4.99358 4.00707,9 9.00391,9 z"
id="ellipse4187"
inkscape:connector-curvature="0" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00079107;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 416.99414,433.36133 c -7.15817,0 -13.00391,-5.84338 -13.00391,-13 0,-7.15663 5.84574,-13 13.00391,-13 7.15817,0 13.00586,5.84337 13.00586,13 0,7.15662 -5.84769,13 -13.00586,13 z m 0,-4 c 4.99684,0 9.00391,-4.00642 9.00391,-9 0,-4.99358 -4.00707,-8.99805 -9.00391,-8.99805 -4.99684,0 -9.00391,4.00447 -9.00391,8.99805 0,4.99358 4.00707,9 9.00391,9 z"
id="ellipse4189"
inkscape:connector-curvature="0" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00000095;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 31.212891 36.955078 C 30.095925 37.676968 28.899371 38.278043 27.642578 38.755859 L 41.296875 66.066406 L 44.875 64.277344 L 31.212891 36.955078 z M 65.310547 37.273438 L 51.287109 64.318359 L 54.837891 66.158203 L 68.935547 38.96875 C 67.661395 38.531528 66.450297 37.959573 65.310547 37.273438 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4191" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,169 @@
<?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="stock_link.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="22.143771"
inkscape:cy="63.339496"
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="92,-8.0000001"
id="guide4075" />
<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="0,1"
position="-5,12"
id="guide4078" />
<sodipodi:guide
orientation="1,0"
position="84,-9.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: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="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 69.566406 8.0488281 C 69.069076 8.0655215 68.581069 8.1223681 68.099609 8.21875 C 64.146469 9.0095971 61.55585 11.815233 59.03125 14.339844 L 51.582031 21.789062 C 49.057731 24.313344 46.251997 26.903206 45.460938 30.857422 C 45.283448 31.744611 45.266754 32.66528 45.365234 33.615234 L 52.550781 26.431641 L 52.597656 26.382812 C 53.138306 25.792336 53.721869 25.184352 54.349609 24.556641 L 61.798828 17.109375 C 64.322638 14.585564 66.387158 12.553584 68.867188 12.056641 L 68.869141 12.056641 C 69.145331 12.001362 69.445295 11.959233 69.765625 11.943359 C 70.088725 11.927366 70.424994 11.938332 70.771484 11.978516 L 70.775391 11.978516 C 72.894811 12.226667 75.361421 13.576263 78.894531 17.109375 C 81.249971 19.464803 82.610609 21.31933 83.355469 22.947266 C 84.100319 24.575212 84.166413 26.02767 83.945312 27.132812 C 83.449142 29.613081 81.416668 31.675097 78.892578 34.199219 L 71.445312 41.650391 C 70.811523 42.28418 70.202562 42.869758 69.607422 43.414062 L 62.382812 50.638672 C 63.334272 50.737533 64.255931 50.718845 65.144531 50.541016 C 69.097661 49.750179 71.688271 46.94259 74.212891 44.417969 L 81.662109 36.96875 C 84.186399 34.444449 86.992153 31.854626 87.783203 27.900391 C 87.975833 26.937542 88.012236 25.930438 87.878906 24.882812 L 87.876953 24.882812 C 87.476983 21.739956 85.542106 18.217882 81.660156 14.335938 C 77.778196 10.453973 74.196321 8.5141882 71.087891 8.1210938 C 70.569991 8.0556197 70.063686 8.0322347 69.566406 8.0488281 z M 32.322266 45.291016 C 31.824926 45.307709 31.336889 45.364556 30.855469 45.460938 C 26.902319 46.251795 24.311729 49.059373 21.787109 51.583984 L 14.337891 59.029297 C 11.813921 61.553248 9.0078769 64.147277 8.2167969 68.101562 C 7.4462969 71.952979 9.1619706 76.48814 14.337891 81.664062 C 19.513821 86.839995 24.047738 88.553558 27.898438 87.783203 C 31.851578 86.992366 34.442177 84.18672 36.966797 81.662109 L 44.416016 74.212891 C 46.940306 71.688599 49.746059 69.096784 50.537109 65.142578 C 50.701629 64.320253 50.753321 63.476986 50.681641 62.601562 C 50.675641 62.53199 50.642066 62.454708 50.634766 62.384766 L 43.423828 69.59375 C 42.877238 70.192193 42.286968 70.804832 41.648438 71.443359 L 34.199219 78.892578 C 31.674489 81.417309 29.610479 83.447316 27.130859 83.943359 C 26.025439 84.164512 24.571479 84.098461 22.943359 83.353516 C 21.315239 82.60857 19.460899 81.247996 17.105469 78.892578 C 14.750029 76.53714 13.389391 74.682623 12.644531 73.054688 C 11.899681 71.426752 11.833597 69.974283 12.054688 68.869141 C 12.550878 66.388892 14.583322 64.326826 17.107422 61.802734 L 24.554688 54.351562 C 25.186537 53.719702 25.795702 53.136275 26.388672 52.59375 L 26.390625 52.591797 L 33.628906 45.353516 C 33.186796 45.307434 32.749326 45.276721 32.322266 45.291016 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4190" />
<path
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"
d="m 373.97713,409.36222 32.01266,-32"
id="path9289"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -0,0 +1,185 @@
<?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.2 (5c3e80d, 2017-08-06)"
viewBox="0 0 96 96.000001"
sodipodi:docname="temperture.svg">
<defs
id="defs4876" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="9.9068602"
inkscape:cx="75.457321"
inkscape:cy="44.687369"
inkscape:document-units="px"
inkscape:current-layer="g4780"
showgrid="false"
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)" />
<path
id="rect4596"
transform="matrix(0,-1,-1,0,0,0)"
style="fill:none;stroke:#808080;stroke-width:4.00079155;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m -371.76101,-367.97522 c 0,11.13793 -9.67118,20.16701 -21.60118,20.16701 -11.93001,0 -21.60119,-9.02908 -21.60119,-20.16701 0,-7.7834 4.72291,-14.53695 11.63913,-17.89899 v -36.69394 c 0,-5.54 4.42204,-9.43231 9.96204,-9.43231 5.54,0 9.98905,4.46001 10,10 l 0.0715,36.17981 c 6.85656,3.37986 11.5297,10.10314 11.5297,17.84543 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssscssscs" />
<path
id="rect4609"
transform="matrix(0,-1,-1,0,0,0)"
style="fill:#808080;fill-opacity:1;stroke:#808080;stroke-width:4.00079155;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m -393.36221,-412.68994 c 1.662,0 3,1.33853 3,3.00119 v 39.41058 c 0,1.66266 -1.338,3.00119 -3,3.00119 -1.662,0 -3,-1.33853 -3,-3.00119 v -39.41058 c 0,-1.66266 1.338,-3.00119 3,-3.00119 z m 13.66839,44.26285 a 13.696771,12.809413 0 0 1 -13.69677,12.80941 13.696771,12.809413 0 0 1 -13.69678,-12.80941 13.696771,12.809413 0 0 1 13.69678,-12.80942 13.696771,12.809413 0 0 1 13.69677,12.80942 z" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -15,7 +15,7 @@
version="1.1"
inkscape:version="0.91+devel r"
viewBox="0 0 96 96.000001"
sodipodi:docname="weather-clouds-symbolic.svg">
sodipodi:docname="torch-off.svg">
<defs
id="defs4876" />
<sodipodi:namedview
@ -26,11 +26,11 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="4.4959994"
inkscape:cx="11.154354"
inkscape:cy="34.719727"
inkscape:cx="2.5467014"
inkscape:cy="64.857633"
inkscape:document-units="px"
inkscape:current-layer="g4780"
showgrid="false"
showgrid="true"
showborder="true"
fit-margin-top="0"
fit-margin-left="0"
@ -79,6 +79,10 @@
orientation="0,1"
position="-5,8.0000001"
id="guide4073" />
<sodipodi:guide
orientation="1,0"
position="92,-8.0000001"
id="guide4075" />
<sodipodi:guide
orientation="1,0"
position="88,-8.0000001"
@ -93,7 +97,7 @@
id="guide4076" />
<sodipodi:guide
orientation="1,0"
position="84,-8.0000001"
position="84,-9.0000001"
id="guide4080" />
<sodipodi:guide
position="48,-8.0000001"
@ -103,10 +107,6 @@
position="-8,48"
orientation="0,1"
id="guide4172" />
<sodipodi:guide
position="92,-8.0000001"
orientation="1,0"
id="guide4760" />
</sodipodi:namedview>
<metadata
id="metadata4879">
@ -148,11 +148,19 @@
x="-438.00244"
y="345.36221"
transform="scale(-1,1)" />
<rect
y="-349.96762"
x="-401.36221"
height="4.0015826"
width="15.999994"
id="rect4577"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
transform="matrix(0,-1,-1,0,0,0)" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#808080;fill-opacity:1;stroke:none;stroke-width:4.00000048;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 51.539062 16.888672 C 39.655652 16.888672 29.559451 24.212821 24.738281 34.675781 L 24.416016 35.376953 L 23.646484 35.433594 C 12.678934 36.232468 3.9980469 45.714566 3.9980469 57.255859 C 3.9980469 69.316737 13.439055 79.21875 25.109375 79.21875 L 51.539062 79.21875 L 76.175781 79.21875 C 84.926381 79.21875 92 71.787763 92 62.779297 C 92 55.94799 87.899411 50.217256 82.082031 47.746094 L 81.324219 47.423828 L 81.287109 46.603516 C 80.540729 30.134022 67.596276 16.888672 51.541016 16.888672 L 51.539062 16.888672 z M 51.539062 20.888672 C 65.393253 20.888672 76.634896 32.305371 77.291016 46.783203 L 77.289062 46.779297 L 77.4375 50.117188 L 80.515625 51.427734 C 84.906955 53.293126 87.998047 57.547827 87.998047 62.779297 C 87.998047 69.694971 82.658528 75.21875 76.173828 75.21875 L 51.539062 75.21875 L 25.109375 75.21875 C 15.702915 75.21875 7.9980469 67.230513 7.9980469 57.255859 C 7.9980469 47.719033 15.103887 40.06517 23.935547 39.421875 L 23.9375 39.421875 L 27.064453 39.191406 L 28.371094 36.349609 C 32.601004 27.169791 41.300243 20.888672 51.539062 20.888672 z "
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#808080;fill-opacity:1;stroke:none;stroke-width:5.25000048;marker:none;enable-background:accumulate"
d="M 48 21 C 33.12385 21 21 33.097419 21 47.941406 C 21 57.252822 25.77425 65.458306 33 70.294922 L 33 75.019531 C 33 76.682513 33.10727 78.098921 33.59375 79.478516 C 34.08023 80.85823 35.1461 82.174071 36.4375 82.876953 C 39.02031 84.282707 41.5 84 45 84 L 51 84 C 54.5 84 56.9797 84.282707 59.5625 82.876953 C 60.8539 82.174071 61.91977 80.85823 62.40625 79.478516 C 62.89273 78.098921 63 76.682513 63 75.019531 L 63 70.294922 C 70.22575 65.458306 75 57.252822 75 47.941406 C 75 33.097419 62.87615 21 48 21 z M 48 25 C 60.70479 25 71 35.267049 71 47.945312 C 71 56.615463 66.10833 64.02326 59 67.917969 L 59 73.3125 L 59 75.007812 C 59.00001 75.978489 58.84292 76.919658 58.34375 77.759766 C 57.84458 78.599873 57.006669 79.196066 56.199219 79.498047 C 54.584309 80.102028 53.00001 80 51 80 L 45 80 C 43.00001 80 41.413738 80.102028 39.798828 79.498047 C 38.991378 79.196066 38.153467 78.599863 37.654297 77.759766 C 37.155127 76.919668 36.998047 75.978489 36.998047 75.007812 L 36.998047 73.3125 L 36.998047 67.917969 C 29.889717 64.02326 24.998047 56.615463 24.998047 47.945312 C 24.998047 35.267049 35.29521 25 48 25 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4181" />
id="path4721" />
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,160 @@
<?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="weather-chance-of-rain.svg">
<defs
id="defs4876" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6199993"
inkscape:cx="27.241991"
inkscape:cy="46.814931"
inkscape:document-units="px"
inkscape:current-layer="g4780"
showgrid="false"
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="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
d="M 48.048828 3.9980469 C 35.339788 29.765082 26.577949 58.499495 25.980469 60.476562 C 25.895669 60.708711 25.833389 60.94998 25.755859 61.185547 C 24.990339 63.501531 24.556641 65.970547 24.556641 68.542969 C 24.556641 81.498363 35.065011 92 48.025391 92 C 60.963251 91.973311 71.443359 81.483872 71.443359 68.544922 C 71.443359 65.974199 71.022083 63.502144 70.257812 61.1875 C 70.257812 61.1875 61.627758 32.181138 48.048828 4.0390625 L 48.048828 4.03125 L 48.048828 4.0195312 L 48.048828 4.0058594 L 48.048828 3.9980469 z M 48.009766 13.839844 C 59.209546 38.806795 66.423828 62.328125 66.423828 62.328125 L 66.439453 62.386719 L 66.458984 62.443359 C 67.094554 64.368228 67.441406 66.408173 67.441406 68.542969 L 67.443359 68.542969 C 67.443359 79.320455 58.800601 87.97351 48.025391 88 L 48.019531 88 L 48.015625 88 C 37.221135 87.995752 28.556641 79.332206 28.556641 68.541016 C 28.556641 66.417776 28.911624 64.380979 29.552734 62.441406 L 29.554688 62.439453 L 29.554688 62.4375 C 29.686477 62.037048 29.743281 61.834661 29.738281 61.847656 L 29.777344 61.742188 L 29.810547 61.632812 C 30.320007 59.947 37.570226 36.847661 48.009766 13.839844 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4185" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -15,7 +15,7 @@
version="1.1"
inkscape:version="0.91+devel r"
viewBox="0 0 96 96.000001"
sodipodi:docname="weather-hazy-symbolic.svg">
sodipodi:docname="weather-few-clouds-symbolic.svg">
<defs
id="defs4876" />
<sodipodi:namedview
@ -25,9 +25,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6199993"
inkscape:cx="36.44128"
inkscape:cy="28.683256"
inkscape:zoom="7.0249991"
inkscape:cx="37.622776"
inkscape:cy="65.046254"
inkscape:document-units="px"
inkscape:current-layer="g4780"
showgrid="true"
@ -140,11 +140,6 @@
transform="matrix(-1,0,0,1,575.99999,611)"
id="g4780"
style="display:inline">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 48 20 C 32.55931 20 20 32.560598 20 48 L 20 50 L 24 50 L 24 48 C 24 34.721073 34.72236 24 48 24 C 61.27765 24 71.998047 34.721073 71.998047 48 L 72 48 L 72 58 L 6 58 L 6 62 L 76 62 L 76 58 L 76 48 C 76 32.560598 63.44069 20 48 20 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4187" />
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
id="rect4782"
@ -153,6 +148,30 @@
x="-438.00244"
y="345.36221"
transform="scale(-1,1)" />
<path
inkscape:connector-curvature="0"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate"
d="m 381.56406,421.97322 a 34.712014,34.698285 0 0 1 -2.39786,-0.56823 34.712014,34.698285 0 0 0 2.39786,0.56823 z"
id="path4162" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#808080;fill-opacity:1;stroke:none;stroke-width:4;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 385.78649,374.57316 c 0,6.25052 -3.86023,11.56286 -9.36699,14.0957 l -0.26963,0.12305 -0.0215,0.29492 c -0.42297,5.79637 -5.44257,10.3789 -11.54363,10.3789 -6.37541,0 -11.61592,-4.98705 -11.61592,-11.15429 l 0,-13.73828 0,-12.80274 c 0,-4.64977 3.95354,-8.4082 8.73979,-8.4082 3.63016,0 6.67926,2.17762 7.99339,5.26562 l 0.12505,0.28907 0.31458,0.0137 c 8.66689,0.39191 15.64486,7.19864 15.64486,15.64258 z m -4.23996,0.43554 0,-0.49219 0,-0.01 0,-0.004 0,-0.0176 -0.004,0.004 c -0.0143,-6.19916 -5.05369,-11.23427 -11.25836,-11.23437 -0.217,1.5e-4 -0.4268,0.0177 -0.63697,0.0312 l -0.25791,0.002 c -1.01522,0.01 -1.84018,0.19861 -2.34859,0.29883 0.0503,-0.30669 0.1011,-0.44403 0.11138,-1.04102 l 0,-0.004 0,-0.004 c -9e-4,-2.76596 -2.25459,-5.01965 -5.02152,-5.01953 l 0,0.002 c -2.76693,-1.2e-4 -5.02256,2.25327 -5.02347,5.01953 l -0.008,25.31836 c -4.7e-4,4.12458 3.35354,7.47992 7.47952,7.48047 4.1267,4.4e-4 7.48195,-3.35537 7.48148,-7.48047 -8.6e-4,-0.78057 -0.20941,-1.53514 -0.4494,-2.27539 5.43844,-0.6589 9.67696,-5.09946 9.93553,-10.57422 l 0,0 z"
id="path4184"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccsscsscccccccccccccccccccccccccccc" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 48 20 C 32.55929 20 20 32.560578 20 48 C 20 59.109005 26.508208 68.718002 35.908203 73.238281 C 35.920407 71.797902 36.104439 70.392169 36.445312 69.044922 C 29.022196 64.968738 24 57.085318 24 48 C 24 34.720623 34.72191 23.998047 48 23.998047 C 61.2781 23.998047 72 34.720623 72 48 C 72 49.698996 71.822199 51.354929 71.488281 52.953125 C 72.800657 53.385275 74.035765 53.994548 75.171875 54.751953 C 75.709863 52.587866 76 50.328185 76 48 C 76 32.560578 63.44071 20 48 20 z "
transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
id="path4194" />
<path
transform="matrix(0,-1,-1,0,0,0)"
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"
inkscape:transform-center-y="-36.999984"
d="m -395.36221,-432.00006 3.99999,-0.50022 0,10.50418 -3.99999,0 z"
id="rect4196"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<rect
inkscape:transform-center-y="-32.042929"
transform="matrix(-0.50014835,-0.86593974,-0.86611103,0.49985167,0,0)"
@ -211,29 +230,26 @@
id="rect4208"
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"
inkscape:transform-center-x="36.999997" />
<path
<rect
inkscape:transform-center-x="32.042959"
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"
inkscape:transform-center-y="-36.999984"
d="m 432.00006,395.36221 0.50022,-3.99999 -10.50418,0 0,3.99999 z"
id="rect4196"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
id="rect4210"
width="4.0011816"
height="10.00099"
x="532.4411"
y="-187.76564"
transform="matrix(0.86611103,0.49985167,0.50014835,-0.86593974,0,0)"
inkscape:transform-center-y="18.499977" />
<rect
y="-355.97"
x="-435.36224"
height="4.0015826"
width="84"
id="rect4292"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:12;marker:none;enable-background:accumulate"
transform="matrix(0,-1,-1,0,0,0)" />
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:12;marker:none;enable-background:accumulate"
id="rect4313"
width="84"
height="4.0015826"
x="-435.36224"
y="-367.97476"
transform="matrix(0,-1,-1,0,0,0)" />
inkscape:transform-center-y="32.042932"
transform="matrix(0.50014835,0.86593974,0.86611103,-0.49985167,0,0)"
y="98.950249"
x="533.62909"
height="10.002968"
width="4.0003905"
id="rect4212"
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"
inkscape:transform-center-x="18.500021" />
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -1,5 +1,5 @@
import QtQuick 2.8
import QtQuick.Controls 2.2
import QtQuick.Controls 2.1
import "../components"
Page {

View File

@ -4,6 +4,7 @@ import QtQuick.Layouts 1.1
import Guh 1.0
import "../components"
import "../actiondelegates"
import "../paramdelegates"
Page {
id: root
@ -12,9 +13,7 @@ Page {
property string text
// output
property var device: null
property var actionType: null
property var params: []
property var actions: []
signal complete();
header: GuhHeader {
@ -23,24 +22,41 @@ Page {
}
ColumnLayout {
anchors { left: parent.left; top: parent.top; right: parent.right; margins: app.margins }
spacing: app.margins
anchors.fill: parent
Label {
text: root.text
Layout.fillWidth: true
Layout.margins: app.margins
text: root.text
font.pixelSize: app.largeFont
}
Button {
text: "control a certain device"
ListView {
Layout.fillWidth: true
onClicked: {
pageStack.push(selectDeviceComponent)
Layout.fillHeight: true
model: ListModel {
ListElement { name: "switchLights"; text: "Switch lights..." }
ListElement { name: "controlMedia"; text: "Control media playback..." }
ListElement { name: "manualAction"; text: "Manually configure an action..." }
}
delegate: ItemDelegate {
width: parent.width
text: model.text
onClicked: {
switch (model.name) {
case "switchLights":
pageStack.push(switchLightsCompoent)
break;
case "controlMedia":
break;
case "muteMedia":
break;
case "manualAction":
pageStack.push(selectDeviceComponent)
break;
}
}
}
}
Button {
text: "control a group of devices"
Layout.fillWidth: true
}
}
@ -68,9 +84,8 @@ Page {
verticalAlignment: Text.AlignVCenter
}
onClicked: {
root.device = Engine.deviceManager.devices.get(index)
var deviceClass = Engine.deviceManager.deviceClasses.getDeviceClass(model.deviceClassId)
pageStack.push(selectDeviceActionComponent, {deviceClass: deviceClass})
var device = Engine.deviceManager.devices.get(index)
pageStack.push(selectDeviceActionComponent, {device: device})
}
}
}
@ -82,7 +97,8 @@ Page {
id: selectDeviceActionComponent
Page {
id: page
property var deviceClass
property var device
readonly property var deviceClass: Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId)
header: GuhHeader {
text: "Select action"
@ -106,14 +122,17 @@ Page {
}
onClicked: {
root.actionType = page.deviceClass.actionTypes.get(index)
var actionType = page.deviceClass.actionTypes.get(index)
if (page.deviceClass.actionTypes.get(index).paramTypes.count == 0) {
// We're all set.
var action = {}
action["deviceId"] = page.device.id
action["actionTypeId"] = actionType.id
root.actions.push(action)
root.complete();
} else {
// need to fill in params
var actionType = page.deviceClass.actionTypes.get(index)
pageStack.push(selectDeviceActionParamComponent, {actionType: actionType})
pageStack.push(selectDeviceActionParamComponent, {device: page.device, actionType: actionType})
}
}
}
@ -126,6 +145,7 @@ Page {
id: selectDeviceActionParamComponent
Page {
id: page
property var device
property var actionType
header: GuhHeader {
text: "params"
@ -137,22 +157,10 @@ Page {
Repeater {
id: delegateRepeater
model: page.actionType.paramTypes
ItemDelegate {
id: paramDelegate
Layout.fillWidth: true
property var paramType: page.actionType.paramTypes.get(index)
property var value: paramType.defaultValue
RowLayout {
anchors.fill: parent
Label {
Layout.fillWidth: true
text: paramDelegate.paramType.name
}
Switch {
checked: paramDelegate.value
onClicked: paramDelegate.value = checked
}
}
delegate: ParamDelegate {
paramType: page.actionType.paramTypes.get(index)
value: paramType.defaultValue
}
}
Item {
@ -164,17 +172,102 @@ Page {
Layout.fillWidth: true
Layout.margins: app.margins
onClicked: {
var params = [];
for (var i = 0; i < delegateRepeater.count; i++) {
var paramDelegate = delegateRepeater.itemAt(i);
var param = {}
param["paramTypeId"] = paramDelegate.paramType.id
param["value"] = paramDelegate.value
root.params.push(param)
params.push(param)
}
var action = {};
action["deviceId"] = page.device.id
action["actionTypeId"] = page.actionType.id
action["ruleActionParams"] = params
root.actions.push(action)
root.complete()
}
}
}
}
}
Component {
id: switchLightsCompoent
Page {
header: GuhHeader {
text: "Switch lights"
onBackPressed: pageStack.pop()
}
ColumnLayout {
anchors.fill: parent
SwitchDelegate {
id: switchDelegate
Layout.fillWidth: true
text: "Set selected lights power to"
position: 0
}
ThinDivider {}
Flickable {
Layout.fillHeight: true
Layout.fillWidth: true
interactive: contentHeight > height
clip: true
Column {
width: parent.width
Repeater {
id: lightsRepeater
model: DevicesProxy {
id: lightsModel
devices: Engine.deviceManager.devices
filterInterface: "light"
}
delegate: CheckDelegate {
width: parent.width
text: model.name
}
}
}
}
Button {
Layout.fillWidth: true
Layout.margins: app.margins
text: "OK"
onClicked: {
for (var i = 0; i < lightsRepeater.count; i++) {
if (lightsRepeater.itemAt(i).checkState === Qt.Unchecked) {
continue;
}
var device = lightsModel.get(i);
var deviceClass = Engine.deviceManager.deviceClasses.getDeviceClass(device.deviceClassId)
var action = {}
action["deviceId"] = device.id
var actionType = deviceClass.actionTypes.findByName("power")
action["actionTypeId"] = actionType.id
var params = [];
var paramType = actionType.paramTypes.getParamType("power");
var param = {}
param["paramTypeId"] = paramType.id
param["value"] = switchDelegate.position === 1 ? true : false;
params.push(param)
action["ruleActionParams"] = params
root.actions.push(action)
}
root.complete();
}
}
}
}
}
}

View File

@ -1,6 +1,7 @@
import QtQuick 2.5
import QtQuick 2.8
import QtQuick.Controls 2.1
import QtQuick.Controls.Material 2.1
import QtQuick.Layouts 1.2
import Qt.labs.settings 1.0
import Guh 1.0
@ -9,15 +10,18 @@ ApplicationWindow {
visible: true
width: 270 * 1.5
height: 480 * 1.5
visibility: settings.fullscreen ? ApplicationWindow.FullScreen : ApplicationWindow.Windowed
property color guhAccent: "#ff57baae"
// Material.primary: "#ff57baae"
Material.primary: "white"
Material.accent: guhAccent
property int margins: 10
property int margins: 14
property int bigMargins: 20
property int smallFont: 10
property int smallFont: 14
property int mediumFont: 16
property int largeFont: 20
property int iconSize: 30
property int delegateHeight: 60
@ -25,6 +29,8 @@ ApplicationWindow {
Settings {
id: settings
property string lastConnectedHost: ""
property bool fullscreen: false
property bool returnToHome: false
}
Component.onCompleted: {
@ -49,6 +55,14 @@ ApplicationWindow {
print("setup required changed")
init();
}
onInvalidProtocolVersion: {
var popup = invalidVersionComponent.createObject(app.contentItem);
popup.actualVersion = actualVersion;
popup.minimumVersion = minimumVersion
popup.open()
settings.lastConnectedHost = ""
}
}
function init() {
@ -76,6 +90,17 @@ ApplicationWindow {
id: discovery
}
Connections {
target: Qt.application
enabled: Engine.jsonRpcClient.connected && settings.returnToHome
onStateChanged: {
print("App active state changed:", state)
if (state !== Qt.ApplicationActive) {
init();
}
}
}
function interfaceToString(name) {
switch(name) {
case "light":
@ -83,11 +108,15 @@ ApplicationWindow {
case "weather":
return "Weather"
case "sensor":
return "Sensor"
return "Sensors"
case "media":
return "Media"
case "button":
return "Switches"
case "gateway":
return "Gateways"
case "notifications":
return "Notifications"
}
}
@ -95,14 +124,75 @@ ApplicationWindow {
switch (name) {
case "light":
return Qt.resolvedUrl("images/torch-on.svg")
case "sensor":
return Qt.resolvedUrl("images/sensors.svg")
case "media":
return Qt.resolvedUrl("images/mediaplayer-app-symbolic.svg")
case "button":
return Qt.resolvedUrl("images/system-shutdown.svg")
case "weather":
return Qt.resolvedUrl("images/weather-app-symbolic.svg")
case "temperaturesensor":
return Qt.resolvedUrl("images/temperature.svg")
case "humiditysensor":
return Qt.resolvedUrl("images/weathericons/humidity.svg")
case "gateway":
return Qt.resolvedUrl("images/network-wired-symbolic.svg")
case "notifications":
return Qt.resolvedUrl("images/notification.svg")
}
}
function interfaceToColor(name) {
switch (name) {
case "temperaturesensor":
return "red";
case "humiditysensor":
return "deepskyblue";
}
return "grey";
}
// ZeroconfDiscovery {
// id: discovery
// }
Component {
id: invalidVersionComponent
Popup {
id: popup
property string actualVersion: "0.0"
property string minimumVersion: "1.0"
width: app.width * .8
height: col.childrenRect.height + app.margins * 2
x: (app.width - width) / 2
y: (app.height - height) / 2
visible: false
ColumnLayout {
id: col
anchors { left: parent.left; right: parent.right }
spacing: app.margins
Label {
text: "Connection error"
Layout.fillWidth: true
font.pixelSize: app.largeFont
}
Label {
text: qsTr("Sorry, the version of the guh box you are trying to connect to is too old. This app requires at least version %1 but the guh box only supports %2").arg(popup.minimumVersion).arg(popup.actualVersion)
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
Button {
Layout.fillWidth: true
text: "OK"
onClicked: {
Engine.connection.disconnect();
popup.close()
}
}
}
}
}
}

View File

@ -0,0 +1,20 @@
import QtQuick 2.8
import QtQuick.Layouts 1.2
import QtQuick.Controls 2.1
RowLayout {
id: root
property alias text: label.text
property alias value: theSwitch.checked
Label {
id: label
Layout.fillWidth: true
}
Switch {
id: theSwitch
checked: root.value === true
onClicked: root.value = checked
}
}

View File

@ -0,0 +1,25 @@
import QtQuick 2.8
import QtQuick.Layouts 1.2
import QtQuick.Controls 2.1
ParamDelegateBase {
id: root
contentItem: RowLayout {
width: parent.width
Label {
id: label
text: root.paramType.name
}
TextField {
id: textField
Layout.fillWidth: true
text: root.value ? root.value : root.paramType.defaultValue
onTextChanged: {
root.value = text;
}
}
}
}

View File

@ -0,0 +1,46 @@
import QtQuick 2.8
import QtQuick.Controls 2.1
Loader {
id: loader
property var paramType: null
property var value: null
source: {
var comp;
switch (loader.paramType.type) {
case "bool":
comp = "Bool";
break;
case "String":
comp = "String";
break;
case "Int":
comp = "Int";
break;
default:
print("unhandled param type:", paramType.type)
}
return Qt.resolvedUrl(comp + "ParamDelegate.qml")
}
onStatusChanged: {
if (status == Loader.Ready) {
loader.item.value = root.value
}
}
Binding {
target: loader.item
when: loader.item
property: "paramType"
value: loader.paramType
}
Binding {
target: loader
when: loader.item
property: "value"
value: loader.item.value
}
}

View File

@ -0,0 +1,9 @@
import QtQuick 2.4
import QtQuick.Controls 2.1
ItemDelegate {
property var paramType: null
property var value: null
}

View File

@ -0,0 +1,24 @@
import QtQuick 2.8
import QtQuick.Layouts 1.2
import QtQuick.Controls 2.1
ParamDelegateBase {
id: root
contentItem: RowLayout {
width: parent.width
Label {
id: label
text: root.paramType.name
}
TextField {
id: textField
Layout.fillWidth: true
text: root.value ? root.value : root.paramType.defaultValue
onTextChanged: {
root.value = text;
}
}
}
}

View File

@ -36,7 +36,8 @@ HEADERS += types/types.h \
types/ruleaction.h \
types/ruleactions.h \
types/ruleactionparams.h \
types/ruleactionparam.h
types/ruleactionparam.h \
types/logentry.h
SOURCES += types/vendor.cpp \
types/vendors.cpp \
@ -64,7 +65,8 @@ SOURCES += types/vendor.cpp \
types/ruleaction.cpp \
types/ruleactions.cpp \
types/ruleactionparams.cpp \
types/ruleactionparam.cpp
types/ruleactionparam.cpp \
types/logentry.cpp
# install header file with relative subdirectory
for(header, HEADERS) {

View File

@ -22,6 +22,8 @@
#include "device.h"
#include <QDebug>
Device::Device(QObject *parent) :
QObject(parent),
m_statesProxy(new StatesProxy(this))

View File

@ -70,6 +70,16 @@ void DeviceClass::setName(const QString &name)
m_name = name;
}
QString DeviceClass::displayName() const
{
return m_displayName;
}
void DeviceClass::setDisplayName(const QString &displayName)
{
m_displayName = displayName;
}
QStringList DeviceClass::createMethods() const
{
return m_createMethods;

View File

@ -38,6 +38,7 @@ class DeviceClass : public QObject
Q_OBJECT
Q_PROPERTY(QString name READ name CONSTANT)
Q_PROPERTY(QString displayName READ displayName CONSTANT)
Q_PROPERTY(QUuid id READ id CONSTANT)
Q_PROPERTY(QUuid vendorId READ vendorId CONSTANT)
Q_PROPERTY(QStringList createMethods READ createMethods CONSTANT)
@ -90,6 +91,9 @@ public:
QString name() const;
void setName(const QString &name);
QString displayName() const;
void setDisplayName(const QString &displayName);
QUuid id() const;
void setId(const QUuid &id);
@ -136,6 +140,7 @@ private:
QUuid m_vendorId;
QUuid m_pluginId;
QString m_name;
QString m_displayName;
QStringList m_createMethods;
SetupMethod m_setupMethod;
QList<BasicTag> m_basicTags;

Some files were not shown because too many files have changed in this diff Show More