summaryrefslogtreecommitdiff
path: root/rockwork/Main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'rockwork/Main.qml')
-rw-r--r--rockwork/Main.qml101
1 files changed, 101 insertions, 0 deletions
diff --git a/rockwork/Main.qml b/rockwork/Main.qml
new file mode 100644
index 0000000..a4726b9
--- /dev/null
+++ b/rockwork/Main.qml
@@ -0,0 +1,101 @@
+import QtQuick 2.4
+import QtQuick.Layouts 1.1
+import Ubuntu.Components 1.3
+import RockWork 1.0
+
+/*!
+ \brief MainView with a Label and Button elements.
+*/
+
+MainView {
+ applicationName: "rockwork.mzanetti"
+
+ width: units.gu(40)
+ height: units.gu(70)
+
+ ServiceController {
+ id: serviceController
+ serviceName: "rockworkd"
+ Component.onCompleted: {
+ if (!serviceController.serviceFileInstalled) {
+ print("Service file not installed. Installing now.")
+ serviceController.installServiceFile();
+ }
+ if (!serviceController.serviceRunning) {
+ print("Service not running. Starting now.")
+ serviceController.startService();
+ }
+ if (pebbles.version !== version) {
+ print("Service file version (", version, ") is not equal running service version (", pebbles.version, "). Restarting service.")
+ serviceController.restartService();
+ }
+ }
+ }
+
+ Pebbles {
+ id: pebbles
+ onCountChanged: loadStack()
+ onConnectedToServiceChanged: loadStack();
+ }
+
+ function loadStack() {
+ pageStack.clear()
+ if (!pebbles.connectedToService) {
+ pageStack.push(loadingComponent)
+ } else if (pebbles.count == 1) {
+ pageStack.push(Qt.resolvedUrl("MainMenuPage.qml"), {pebble: pebbles.get(0)})
+ } else {
+ pageStack.push(Qt.resolvedUrl("PebblesPage.qml"))
+ }
+ }
+
+ PageStack {
+ id: pageStack
+ Component.onCompleted: loadStack();
+ }
+
+ Component {
+ id: loadingComponent
+ Page {
+ title: "RockWork"
+
+ Column {
+ width: parent.width - units.gu(4)
+ anchors.centerIn: parent
+ spacing: units.gu(4)
+
+ Rectangle {
+ id: upgradeIcon
+ height: units.gu(10)
+ width: height
+ radius: width / 2
+ color: UbuntuColors.blue
+ anchors.horizontalCenter: parent.horizontalCenter
+ Icon {
+ anchors.fill: parent
+ anchors.margins: units.gu(1)
+ name: "preferences-system-updates-symbolic"
+ color: "white"
+ }
+
+ RotationAnimation on rotation {
+ duration: 2000
+ loops: Animation.Infinite
+ from: 0
+ to: 360
+ running: upgradeIcon.visible
+ }
+ visible: true
+ }
+
+ Label {
+ width: parent.width
+ horizontalAlignment: Text.AlignHCenter
+ fontSize: "large"
+ text: i18n.tr("Loading...")
+ }
+ }
+
+ }
+ }
+}