loads of more work
@ -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
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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 ¶ms)
|
||||
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(),
|
||||
|
||||
@ -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 ¶ms)
|
||||
{
|
||||
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 ¶ms)
|
||||
m_plugins->addPlugin(plugin);
|
||||
}
|
||||
}
|
||||
m_jsonClient->sendCommand("Devices.GetVendors", this, "getVendorsResponse");
|
||||
m_jsonClient->sendCommand("Devices.GetSupportedVendors", this, "getVendorsResponse");
|
||||
}
|
||||
|
||||
void DeviceManager::getConfiguredDevicesResponse(const QVariantMap ¶ms)
|
||||
@ -144,29 +146,45 @@ void DeviceManager::getConfiguredDevicesResponse(const QVariantMap ¶ms)
|
||||
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 ¶ms)
|
||||
{
|
||||
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 ¶ms)
|
||||
@ -178,6 +196,16 @@ void DeviceManager::removeDeviceResponse(const QVariantMap ¶ms)
|
||||
device->deleteLater();
|
||||
}
|
||||
|
||||
void DeviceManager::pairDeviceResponse(const QVariantMap ¶ms)
|
||||
{
|
||||
emit pairDeviceReply(params.value("params").toMap());
|
||||
}
|
||||
|
||||
void DeviceManager::confirmPairintResponse(const QVariantMap ¶ms)
|
||||
{
|
||||
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)
|
||||
|
||||
@ -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 ¶ms);
|
||||
Q_INVOKABLE void addDeviceResponse(const QVariantMap ¶ms);
|
||||
Q_INVOKABLE void removeDeviceResponse(const QVariantMap ¶ms);
|
||||
Q_INVOKABLE void pairDeviceResponse(const QVariantMap ¶ms);
|
||||
Q_INVOKABLE void confirmPairintResponse(const QVariantMap ¶ms);
|
||||
|
||||
|
||||
signals:
|
||||
void pairDeviceReply(const QVariantMap ¶ms);
|
||||
void confirmPairingReply(const QVariantMap ¶ms);
|
||||
void addDeviceReply(const QVariantMap ¶ms);
|
||||
|
||||
private:
|
||||
Vendors *m_vendors;
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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;
|
||||
|
||||
134
guh-control/models/logsmodel.cpp
Normal 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();
|
||||
}
|
||||
67
guh-control/models/logsmodel.h
Normal 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
|
||||
136
guh-control/models/valuelogsproxymodel.cpp
Normal 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();
|
||||
|
||||
}
|
||||
53
guh-control/models/valuelogsproxymodel.h
Normal 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
|
||||
@ -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>
|
||||
|
||||
@ -99,7 +99,7 @@ void RuleManager::getRuleDetailsReply(const QVariantMap ¶ms)
|
||||
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);
|
||||
}
|
||||
|
||||
@ -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})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import QtQuick 2.8
|
||||
import QtQuick.Controls 2.2
|
||||
import QtQuick.Controls 2.1
|
||||
import "components"
|
||||
import Guh 1.0
|
||||
|
||||
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
48
guh-control/ui/SystemInfoPage.qml
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
74
guh-control/ui/components/ColorPickerCt.qml
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
318
guh-control/ui/components/Graph.qml
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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"
|
||||
|
||||
22
guh-control/ui/components/IconMenuItem.qml
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
8
guh-control/ui/components/ThinDivider.qml
Normal file
@ -0,0 +1,8 @@
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Layouts 1.2
|
||||
|
||||
Rectangle {
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
color: app.guhAccent
|
||||
}
|
||||
40
guh-control/ui/components/ThrottledSlider.qml
Normal 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
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,5 +4,6 @@ Item {
|
||||
|
||||
property var device: null
|
||||
property var deviceClass: null
|
||||
property string interfaceName
|
||||
|
||||
}
|
||||
|
||||
@ -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 = {}
|
||||
|
||||
@ -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 }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
37
guh-control/ui/customviews/NotificationsView.qml
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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)})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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)
|
||||
})
|
||||
|
||||
144
guh-control/ui/devicepages/ColorLightDevicePage.qml
Normal 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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
51
guh-control/ui/devicepages/DevicePageBase.qml
Normal 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
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -27,7 +27,7 @@ Page {
|
||||
Label {
|
||||
id: stateLabel
|
||||
Layout.preferredWidth: parent.width / 2
|
||||
text: name
|
||||
text: displayName
|
||||
}
|
||||
|
||||
Label {
|
||||
|
||||
44
guh-control/ui/devicepages/SensorDevicePage.qml
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
30
guh-control/ui/devicepages/WeatherDevicePage.qml
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
20
guh-control/ui/images/audio-speakers-muted-symbolic.svg
Normal 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 |
20
guh-control/ui/images/audio-speakers-symbolic.svg
Normal 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 |
18
guh-control/ui/images/battery/battery-000.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-010.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-020.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-030.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-040.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-050.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-060.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-070.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-080.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-090.svg
Normal 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 |
19
guh-control/ui/images/battery/battery-100.svg
Normal 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 |
176
guh-control/ui/images/dialog-warning-symbolic.svg
Normal 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 |
168
guh-control/ui/images/media-playback-pause.svg
Normal file
@ -0,0 +1,168 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="96"
|
||||
height="96"
|
||||
id="svg4874"
|
||||
version="1.1"
|
||||
inkscape:version="0.91+devel r"
|
||||
viewBox="0 0 96 96.000001"
|
||||
sodipodi:docname="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 |
163
guh-control/ui/images/media-playback-start.svg
Normal 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 |
163
guh-control/ui/images/media-playback-stop.svg
Normal 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 |
174
guh-control/ui/images/media-seek-backward.svg
Normal 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 |
173
guh-control/ui/images/media-seek-forward.svg
Normal 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 |
@ -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 |
175
guh-control/ui/images/media-skip-forward.svg
Normal 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 |
@ -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 |
160
guh-control/ui/images/network-wired-symbolic.svg
Normal 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 |
180
guh-control/ui/images/notification.svg
Normal 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 |
227
guh-control/ui/images/sensors.svg
Normal 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 |
@ -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 |
174
guh-control/ui/images/share.svg
Normal 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 |
169
guh-control/ui/images/stock_link.svg
Normal 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 |
185
guh-control/ui/images/temperature.svg
Normal 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 |
@ -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 |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
160
guh-control/ui/images/weathericons/humidity.svg
Normal 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 |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
@ -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 |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 8.8 KiB |
@ -1,5 +1,5 @@
|
||||
import QtQuick 2.8
|
||||
import QtQuick.Controls 2.2
|
||||
import QtQuick.Controls 2.1
|
||||
import "../components"
|
||||
|
||||
Page {
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
20
guh-control/ui/paramdelegates/BoolParamDelegate.qml
Normal 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
|
||||
}
|
||||
}
|
||||
25
guh-control/ui/paramdelegates/IntParamDelegate.qml
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
46
guh-control/ui/paramdelegates/ParamDelegate.qml
Normal 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
|
||||
}
|
||||
}
|
||||
9
guh-control/ui/paramdelegates/ParamDelegateBase.qml
Normal file
@ -0,0 +1,9 @@
|
||||
import QtQuick 2.4
|
||||
import QtQuick.Controls 2.1
|
||||
|
||||
ItemDelegate {
|
||||
|
||||
property var paramType: null
|
||||
property var value: null
|
||||
|
||||
}
|
||||
24
guh-control/ui/paramdelegates/StringParamDelegate.qml
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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) {
|
||||
|
||||
@ -22,6 +22,8 @@
|
||||
|
||||
#include "device.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
Device::Device(QObject *parent) :
|
||||
QObject(parent),
|
||||
m_statesProxy(new StatesProxy(this))
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||