Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 23fdbd27b6 | |||
| bdebc0833e | |||
| 0ec59fc409 | |||
| ad1fdee6c4 | |||
| c9720c9dea | |||
| 16db502a04 | |||
| 003a484fc4 | |||
| f0d203c6d6 | |||
| 9e7bf90831 |
Binary file not shown.
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 129 KiB |
BIN
packaging/mobile_window.png
Normal file
BIN
packaging/mobile_window.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 126 KiB |
@@ -2,7 +2,7 @@
|
|||||||
<component type="desktop-application">
|
<component type="desktop-application">
|
||||||
<id>org.eyecreate.qiflora</id>
|
<id>org.eyecreate.qiflora</id>
|
||||||
<name>QiFlora</name>
|
<name>QiFlora</name>
|
||||||
<summary>Mobile friendly application to monitor Mi Flora devices.</summary>
|
<summary>Mobile friendly application to monitor plants using Mi Flora devices.</summary>
|
||||||
<metadata_license>FSFAP</metadata_license>
|
<metadata_license>FSFAP</metadata_license>
|
||||||
<project_license>GPL-3.0-or-later</project_license>
|
<project_license>GPL-3.0-or-later</project_license>
|
||||||
<content_rating type="oars-1.1" />
|
<content_rating type="oars-1.1" />
|
||||||
@@ -15,10 +15,23 @@
|
|||||||
</description>
|
</description>
|
||||||
<screenshots>
|
<screenshots>
|
||||||
<screenshot type="default">
|
<screenshot type="default">
|
||||||
<image type="source">https://git.eyecreate.org/eyecreate/qiflora/raw/v1.1/packaging/main_window.png</image>
|
<image type="source">https://git.eyecreate.org/eyecreate/qiflora/raw/v1.1.2/packaging/main_window.png</image>
|
||||||
|
</screenshot>
|
||||||
|
<screenshot>
|
||||||
|
<image type="source">https://git.eyecreate.org/eyecreate/qiflora/raw/v1.1.2/packaging/mobile_window.png</image>
|
||||||
</screenshot>
|
</screenshot>
|
||||||
</screenshots>
|
</screenshots>
|
||||||
<releases>
|
<releases>
|
||||||
|
<release version="1.1.2" date="2019-11-15" type="stable">
|
||||||
|
<description>
|
||||||
|
<p>Fixed code causing text to sometimes not appear.</p>
|
||||||
|
</description>
|
||||||
|
</release>
|
||||||
|
<release version="1.1.1" date="2019-11-14" type="stable">
|
||||||
|
<description>
|
||||||
|
<p>Cleaned up graph markings and temperature rounding.</p>
|
||||||
|
</description>
|
||||||
|
</release>
|
||||||
<release version="1.1" date="2019-11-13" type="stable">
|
<release version="1.1" date="2019-11-13" type="stable">
|
||||||
<description>
|
<description>
|
||||||
<p>This release adds history graph for the last 48 hours.</p>
|
<p>This release adds history graph for the last 48 hours.</p>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=QiFlora
|
Name=QiFlora
|
||||||
Comment=Monitor plants with Mi Flora sensors.
|
Comment=Monitor plants with Mi Flora sensors.
|
||||||
Version=1.1
|
Version=1.1.2
|
||||||
Exec=qiflora
|
Exec=qiflora
|
||||||
MimeType=application/x-qiflora;
|
MimeType=application/x-qiflora;
|
||||||
Icon=org.eyecreate.qiflora
|
Icon=org.eyecreate.qiflora
|
||||||
|
|||||||
@@ -83,12 +83,15 @@
|
|||||||
"name": "qiflora",
|
"name": "qiflora",
|
||||||
"buildsystem": "cmake-ninja",
|
"buildsystem": "cmake-ninja",
|
||||||
"builddir": true,
|
"builddir": true,
|
||||||
|
"config-opts": [
|
||||||
|
"-DCMAKE_BUILD_TYPE=Release"
|
||||||
|
]
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.eyecreate.org/eyecreate/qiflora.git",
|
"url": "https://git.eyecreate.org/eyecreate/qiflora.git",
|
||||||
"tag": "v1.1",
|
"tag": "v1.1.2",
|
||||||
"commit": "9bad2c73ff21515f63f5a09d7a8434bdfd98e6ee"
|
"commit": "16db502a0460139dcff6a63df90c218e3e4c1d66"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import org.kde.kirigami 2.6 as Kirigami
|
|||||||
import QtQuick.Controls 2.0 as Controls
|
import QtQuick.Controls 2.0 as Controls
|
||||||
import QtQuick.Layouts 1.12 as Layouts
|
import QtQuick.Layouts 1.12 as Layouts
|
||||||
import QtCharts 2.3 as Charts
|
import QtCharts 2.3 as Charts
|
||||||
import org.eyecreate.qiflora 1.0
|
import org.eyecreate.qiflora 1.1
|
||||||
|
|
||||||
Kirigami.ApplicationWindow {
|
Kirigami.ApplicationWindow {
|
||||||
id: root
|
id: root
|
||||||
@@ -25,7 +25,7 @@ Kirigami.ApplicationWindow {
|
|||||||
id: mainPage
|
id: mainPage
|
||||||
mainAction: Kirigami.Action {
|
mainAction: Kirigami.Action {
|
||||||
iconName: "view-refresh"
|
iconName: "view-refresh"
|
||||||
text: i18n("Query Device")
|
text: qsTr("Query Device")
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
deviceSelect.open();
|
deviceSelect.open();
|
||||||
}
|
}
|
||||||
@@ -33,7 +33,7 @@ Kirigami.ApplicationWindow {
|
|||||||
contextualActions: [
|
contextualActions: [
|
||||||
Kirigami.Action {
|
Kirigami.Action {
|
||||||
iconName: "help-about"
|
iconName: "help-about"
|
||||||
text: i18n("About")
|
text: qsTr("About")
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
pageStack.replace(aboutPageComponent);
|
pageStack.replace(aboutPageComponent);
|
||||||
}
|
}
|
||||||
@@ -73,6 +73,7 @@ Kirigami.ApplicationWindow {
|
|||||||
title: "Temperature"
|
title: "Temperature"
|
||||||
icon: "filename-bpm-amarok"
|
icon: "filename-bpm-amarok"
|
||||||
lineColor: "red"
|
lineColor: "red"
|
||||||
|
units: "°C"
|
||||||
yMin: -20
|
yMin: -20
|
||||||
yMax: 40
|
yMax: 40
|
||||||
modelCol: 1
|
modelCol: 1
|
||||||
@@ -82,6 +83,7 @@ Kirigami.ApplicationWindow {
|
|||||||
title: "Moisture"
|
title: "Moisture"
|
||||||
icon: "colors-chromablue"
|
icon: "colors-chromablue"
|
||||||
lineColor: "cyan"
|
lineColor: "cyan"
|
||||||
|
units: "%"
|
||||||
yMin: 0
|
yMin: 0
|
||||||
yMax: 75
|
yMax: 75
|
||||||
modelCol: 3
|
modelCol: 3
|
||||||
@@ -91,6 +93,7 @@ Kirigami.ApplicationWindow {
|
|||||||
title: "Conductivity"
|
title: "Conductivity"
|
||||||
icon: "quickopen"
|
icon: "quickopen"
|
||||||
lineColor: "gold"
|
lineColor: "gold"
|
||||||
|
units: "µS/cm"
|
||||||
yMin: 0
|
yMin: 0
|
||||||
yMax: 6000
|
yMax: 6000
|
||||||
modelCol: 4
|
modelCol: 4
|
||||||
@@ -100,6 +103,7 @@ Kirigami.ApplicationWindow {
|
|||||||
title: "Brightness"
|
title: "Brightness"
|
||||||
icon: "contrast"
|
icon: "contrast"
|
||||||
lineColor: "orange"
|
lineColor: "orange"
|
||||||
|
units: "lux"
|
||||||
yMin: 0
|
yMin: 0
|
||||||
yMax: 30000
|
yMax: 30000
|
||||||
modelCol: 2
|
modelCol: 2
|
||||||
@@ -109,7 +113,7 @@ Kirigami.ApplicationWindow {
|
|||||||
delegate: Kirigami.Card {
|
delegate: Kirigami.Card {
|
||||||
id: card
|
id: card
|
||||||
banner {
|
banner {
|
||||||
title: i18n(model.title)
|
title: qsTr(model.title)
|
||||||
titleIcon: model.icon
|
titleIcon: model.icon
|
||||||
titleLevel: 2
|
titleLevel: 2
|
||||||
}
|
}
|
||||||
@@ -121,13 +125,13 @@ Kirigami.ApplicationWindow {
|
|||||||
Kirigami.Heading {
|
Kirigami.Heading {
|
||||||
Layouts.Layout.alignment: Qt.AlignCenter
|
Layouts.Layout.alignment: Qt.AlignCenter
|
||||||
level: 4
|
level: 4
|
||||||
text: i18n("Last Measured")
|
text: qsTr("Last Measured")
|
||||||
}
|
}
|
||||||
Kirigami.Heading {
|
Kirigami.Heading {
|
||||||
Layouts.Layout.alignment: Qt.AlignCenter
|
Layouts.Layout.alignment: Qt.AlignCenter
|
||||||
level: 3
|
level: 3
|
||||||
text: {
|
text: {
|
||||||
if(model.chartType == "temperature") qiflora.temperature + "°C\n" + (qiflora.temperature*1.8+32) + "°F"
|
if(model.chartType == "temperature") Math.round(qiflora.temperature*10)/10 + "°C\n" + (Math.round((qiflora.temperature*1.8+32)*10)/10) + "°F"
|
||||||
else if(model.chartType == "moisture") qiflora.moisture + "%"
|
else if(model.chartType == "moisture") qiflora.moisture + "%"
|
||||||
else if(model.chartType == "conductivity") qiflora.conduction + " µS/cm"
|
else if(model.chartType == "conductivity") qiflora.conduction + " µS/cm"
|
||||||
else if(model.chartType == "brightness") qiflora.brightness + " lux"
|
else if(model.chartType == "brightness") qiflora.brightness + " lux"
|
||||||
@@ -163,6 +167,7 @@ Kirigami.ApplicationWindow {
|
|||||||
}
|
}
|
||||||
axisY: Charts.ValueAxis {
|
axisY: Charts.ValueAxis {
|
||||||
id: valueAx
|
id: valueAx
|
||||||
|
labelFormat: "%d "+units
|
||||||
labelsColor: Kirigami.Theme.textColor
|
labelsColor: Kirigami.Theme.textColor
|
||||||
min: yMin
|
min: yMin
|
||||||
max: yMax
|
max: yMax
|
||||||
@@ -202,7 +207,7 @@ Kirigami.ApplicationWindow {
|
|||||||
color: "transparent"
|
color: "transparent"
|
||||||
}
|
}
|
||||||
Kirigami.Heading {
|
Kirigami.Heading {
|
||||||
text: i18n("Select Device to Query")
|
text: qsTr("Select Device to Query")
|
||||||
}
|
}
|
||||||
Rectangle {
|
Rectangle {
|
||||||
height: 10
|
height: 10
|
||||||
@@ -245,7 +250,7 @@ Kirigami.ApplicationWindow {
|
|||||||
id: aboutPage
|
id: aboutPage
|
||||||
actions.main: Kirigami.Action {
|
actions.main: Kirigami.Action {
|
||||||
iconName: "window-close"
|
iconName: "window-close"
|
||||||
text: "Close"
|
text: qsTr("Close")
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
pageStack.clear();
|
pageStack.clear();
|
||||||
pageStack.push(mainPageComponent);
|
pageStack.push(mainPageComponent);
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
|||||||
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
|
|
||||||
KAboutData aboutData("org.eyecreate.qiflora", "QiFlora", "1.1", "Mobile friendly application to monitor Mi Flora devices.",KAboutLicense::GPL_V3);//TODO:i18n
|
KAboutData aboutData("org.eyecreate.qiflora", "QiFlora", "1.1.2", "Mobile friendly application to monitor Mi Flora devices.",KAboutLicense::GPL_V3);//TODO:i18n
|
||||||
aboutData.setProductName("qiflora");
|
aboutData.setProductName("qiflora");
|
||||||
aboutData.addAuthor("Kevin Whitaker",QString(),"eyecreate@eyecreate.org","https://www.eyecreate.org");
|
aboutData.addAuthor("Kevin Whitaker",QString(),"eyecreate@eyecreate.org","https://www.eyecreate.org");
|
||||||
aboutData.setDesktopFileName("org.eyecreate.qiflora");
|
aboutData.setDesktopFileName("org.eyecreate.qiflora");
|
||||||
@@ -26,7 +26,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
|||||||
|
|
||||||
QQmlApplicationEngine engine;
|
QQmlApplicationEngine engine;
|
||||||
qmlRegisterType<BluetoothDevices>();
|
qmlRegisterType<BluetoothDevices>();
|
||||||
qmlRegisterType<MiFlora>("org.eyecreate.qiflora",1,0,"QiFlora");
|
qmlRegisterType<MiFlora>("org.eyecreate.qiflora",1,1,"QiFlora");
|
||||||
engine.rootContext()->setContextProperty(QStringLiteral("appAboutData"), QVariant::fromValue(aboutData));
|
engine.rootContext()->setContextProperty(QStringLiteral("appAboutData"), QVariant::fromValue(aboutData));
|
||||||
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
|
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
#include "florahistory.h"
|
#include "florahistory.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
QVariant FloraHistory::data(const QModelIndex& index, int role) const
|
QVariant FloraHistory::data(const QModelIndex& index, int role) const
|
||||||
{
|
{
|
||||||
@@ -24,13 +25,15 @@ QVariant FloraHistory::data(const QModelIndex& index, int role) const
|
|||||||
if(index.column() == 0) {
|
if(index.column() == 0) {
|
||||||
return QVariant(tableData[index.row()].time);
|
return QVariant(tableData[index.row()].time);
|
||||||
} else if(index.column() == 1) {
|
} else if(index.column() == 1) {
|
||||||
return QVariant(tableData[index.row()].temperature);
|
return QVariant(std::round(tableData[index.row()].temperature*10)/10); //temp in C
|
||||||
} else if(index.column() == 2) {
|
} else if(index.column() == 2) {
|
||||||
return QVariant(tableData[index.row()].brightness);
|
return QVariant(tableData[index.row()].brightness);
|
||||||
} else if(index.column() == 3) {
|
} else if(index.column() == 3) {
|
||||||
return QVariant(tableData[index.row()].moisture);
|
return QVariant(tableData[index.row()].moisture);
|
||||||
} else if(index.column() == 4) {
|
} else if(index.column() == 4) {
|
||||||
return QVariant(tableData[index.row()].conductivity);
|
return QVariant(tableData[index.row()].conductivity);
|
||||||
|
} else if(index.column() == 5) {
|
||||||
|
return QVariant((std::round((tableData[index.row()].temperature*1.8+32)*10)/10)); //temp in F
|
||||||
} else {
|
} else {
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
@@ -41,7 +44,7 @@ QVariant FloraHistory::data(const QModelIndex& index, int role) const
|
|||||||
|
|
||||||
int FloraHistory::columnCount(const QModelIndex& parent) const
|
int FloraHistory::columnCount(const QModelIndex& parent) const
|
||||||
{
|
{
|
||||||
return 5;
|
return 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
int FloraHistory::rowCount(const QModelIndex& parent) const
|
int FloraHistory::rowCount(const QModelIndex& parent) const
|
||||||
|
|||||||
Reference in New Issue
Block a user