summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier S. Pedro <maemo@javispedro.com>2011-12-02 23:02:51 +0100
committerJavier S. Pedro <maemo@javispedro.com>2011-12-02 23:02:51 +0100
commitd5b5cfc83e1247ebc18ef2024f07bdd37d41164b (patch)
treed6c44ffe944c730f4bb16a3e5a412db78027f324
parent1abf33ab7bcbf73ebb9eeb6c388c3c1c4abef445 (diff)
downloadsowatch-d5b5cfc83e1247ebc18ef2024f07bdd37d41164b.tar.gz
sowatch-d5b5cfc83e1247ebc18ef2024f07bdd37d41164b.zip
provide a set of metawatch common qml elements
-rw-r--r--libsowatch/declarativewatchlet.cpp3
-rw-r--r--metawatch/metawatch.cpp1
-rw-r--r--metawatch/metawatch.pro11
-rw-r--r--metawatch/qml/MWTitle.qml6
-rw-r--r--metawatch/qml/com/javispedro/sowatch/metawatch/MWListView.qml (renamed from metawatch/qml/MWListView.qml)63
-rw-r--r--metawatch/qml/com/javispedro/sowatch/metawatch/MWTitle.qml16
-rw-r--r--metawatch/qml/com/javispedro/sowatch/metawatch/qmldir2
-rw-r--r--notificationswatchlet/metawatch-digital.qml57
-rw-r--r--notificationswatchlet/notificationswatchlet.pro1
-rw-r--r--sowatch.pro17
-rw-r--r--sowatchui/sowatchui.pro3
11 files changed, 82 insertions, 98 deletions
diff --git a/libsowatch/declarativewatchlet.cpp b/libsowatch/declarativewatchlet.cpp
index 34a1d2a..275af2a 100644
--- a/libsowatch/declarativewatchlet.cpp
+++ b/libsowatch/declarativewatchlet.cpp
@@ -24,8 +24,9 @@ DeclarativeWatchlet::DeclarativeWatchlet(WatchServer* server, const QString& id)
}
_engine = new QDeclarativeEngine(this);
- _wrapper = new DeclarativeWatchWrapper(server, server->watch(), this);
+ _engine->addImportPath(SOWATCH_QML_DIR);
+ _wrapper = new DeclarativeWatchWrapper(server, server->watch(), this);
_engine->rootContext()->setContextProperty("watch", _wrapper);
}
diff --git a/metawatch/metawatch.cpp b/metawatch/metawatch.cpp
index e829c94..2106277 100644
--- a/metawatch/metawatch.cpp
+++ b/metawatch/metawatch.cpp
@@ -696,6 +696,7 @@ void MetaWatch::socketConnected()
grabButton(NotificationMode, BtnE);
grabButton(NotificationMode, BtnF);
+ // Call the MetaWatch Model-specific setup routines
handleWatchConnected();
emit connected();
diff --git a/metawatch/metawatch.pro b/metawatch/metawatch.pro
index d0ffddf..c7cf74b 100644
--- a/metawatch/metawatch.pro
+++ b/metawatch/metawatch.pro
@@ -31,7 +31,7 @@ FORMS += \
metawatchsimulatorform.ui
res_files.files += res/graphics res/fonts
-qml_files.files += qml/MWListView.qml
+qml_files.files += qml/com
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libsowatch/release/ -lsowatch
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libsowatch/debug/ -lsowatch
@@ -56,16 +56,11 @@ unix:!symbian {
QMAKE_RPATHDIR += /opt/sowatch/lib
target.path = /opt/sowatch/lib/drivers
res_files.path = /opt/sowatch/share/metawatch
- qml_files.path = /opt/sowatch/qml/metawatch
+ qml_files.path = /opt/sowatch/qml
} else {
target.path = /usr/lib/sowatch/drivers
res_files.path = /usr/share/sowatch/metawatch
- qml_files.path = /usr/share/sowatch/qml/metawatch
+ qml_files.path = /usr/share/sowatch/qml
}
INSTALLS += target res_files qml_files
}
-
-OTHER_FILES += \
- qml/MWTitle.qml
-
-
diff --git a/metawatch/qml/MWTitle.qml b/metawatch/qml/MWTitle.qml
deleted file mode 100644
index 44f4f70..0000000
--- a/metawatch/qml/MWTitle.qml
+++ /dev/null
@@ -1,6 +0,0 @@
-import QtQuick 1.0
-
-Rectangle {
- width: 100
- height: 62
-}
diff --git a/metawatch/qml/MWListView.qml b/metawatch/qml/com/javispedro/sowatch/metawatch/MWListView.qml
index e49905b..3e445fb 100644
--- a/metawatch/qml/MWListView.qml
+++ b/metawatch/qml/com/javispedro/sowatch/metawatch/MWListView.qml
@@ -5,55 +5,52 @@ ListView {
property bool selectable: true
- //interactive: false
+ interactive: false
highlightFollowsCurrentItem: false
boundsBehavior: Flickable.StopAtBounds
- property real currentItemTop: currentItem.y - contentY
- property real currentItemBottom: currentItemTop + currentItem.height
+ property real currentItemTop: currentItem !== null ? currentItem.y - contentY : 0
+ property real currentItemBottom: currentItem !== null ? currentItemTop + currentItem.height : 0
- function _scrollSelectable(dir) {
- var maxy = contentHeight - height;
- if (maxy < 0) maxy = 0;
-
- console.log(contentHeight);
-
- var newy = contentY;
-
- if (dir > 0) {
+ function scrollDown() {
+ if (count == 0) {
+ return; // No items
+ }
+ if (selectable) {
+ if (currentIndex == -1) {
+ // If no item is selected, select the first one.
+ currentItem = 0;
+ return;
+ }
if (currentIndex < count && currentItemBottom < height) {
// If the next item is visible, highlight it
- list.incrementCurrentIndex();
+ incrementCurrentIndex();
}
if (currentItemBottom >= height) {
// If the next item now is still not visible, scroll
- newy += 96/3;
+ contentY += 96/3;
+ }
+ }
+ }
+
+ function scrollUp() {
+ if (count == 0) {
+ return; // No items
+ }
+ if (selectable) {
+ if (currentIndex == -1) {
+ // If no item is selected, select the last one.
+ currentIndex = count - 1;
+ return;
}
- } else {
if (currentIndex >= 0 && currentItemTop > 0) {
// If the previous item is visible, highlight it
- list.decrementCurrentIndex();
+ decrementCurrentIndex();
}
if (currentItemTop <= 0) {
// If the previous item now is still not visible, scroll
- newy -= 96/3;
+ contentY -= 96/3;
}
}
-
- //if (newy < 0) newy = 0;
- //if (newy > maxy) newy = maxy;
- list.contentY = newy;
- }
-
- function scrollDown() {
- if (selectable) {
- _scrollSelectable(+1);
- }
- }
-
- function scrollUp() {
- if (selectable) {
- _scrollSelectable(-1);
- }
}
}
diff --git a/metawatch/qml/com/javispedro/sowatch/metawatch/MWTitle.qml b/metawatch/qml/com/javispedro/sowatch/metawatch/MWTitle.qml
new file mode 100644
index 0000000..8aa494c
--- /dev/null
+++ b/metawatch/qml/com/javispedro/sowatch/metawatch/MWTitle.qml
@@ -0,0 +1,16 @@
+import QtQuick 1.0
+
+Rectangle {
+ width: 96
+ height: 16
+
+ property alias text: label.text
+
+ Row {
+ anchors.fill: parent
+ Text {
+ id: label
+ font.bold: true
+ }
+ }
+}
diff --git a/metawatch/qml/com/javispedro/sowatch/metawatch/qmldir b/metawatch/qml/com/javispedro/sowatch/metawatch/qmldir
new file mode 100644
index 0000000..02221c3
--- /dev/null
+++ b/metawatch/qml/com/javispedro/sowatch/metawatch/qmldir
@@ -0,0 +1,2 @@
+MWTitle 1.0 MWTitle.qml
+MWListView 1.0 MWListView.qml
diff --git a/notificationswatchlet/metawatch-digital.qml b/notificationswatchlet/metawatch-digital.qml
index be662ab..e5764ec 100644
--- a/notificationswatchlet/metawatch-digital.qml
+++ b/notificationswatchlet/metawatch-digital.qml
@@ -1,4 +1,5 @@
import QtQuick 1.0
+import com.javispedro.sowatch.metawatch 1.0
Rectangle {
width: 96
@@ -6,33 +7,39 @@ Rectangle {
color: "white"
- ListView {
+ MWTitle {
+ id: title
+ text: qsTr("Notifications")
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+
+ MWListView {
id: notifs
- anchors.fill: parent
+ anchors.top: title.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
model: watch.notifications
- delegate: Column {
- width: parent.width
- Text {
- width: parent.width
- text: model.modelData.title
- wrapMode: Text.Wrap
- }
+ delegate: Rectangle {
+ property bool selected: ListView.isCurrentItem
+ width: notifs.width
+ height: childrenRect.height
+ color: ListView.isCurrentItem ? "black" : "white"
Text {
- width: parent.width
- text: model.modelData.body
- wrapMode: Text.Wrap
- }
- Rectangle {
- width: parent.width
- height: 1
- color: "black"
+ width: 96
+ text: "<b>" + model.modelData.title + "</b><br>" + model.modelData.body
+ wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ color: parent.selected ? "white" : "black"
}
}
visible: count > 0;
}
Text {
- anchors.fill: parent
+ anchors.top: title.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("No notifications");
visible: notifs.count == 0;
wrapMode: Text.Wrap
@@ -41,22 +48,12 @@ Rectangle {
Connections {
target: watch
onButtonPressed : {
- var increment = (3 * (notifs.width / 4));
- var maxy = notifs.contentHeight - notifs.height;
- var newy;
-
- if (maxy < 0) maxy = 0;
-
switch (button) {
case 1:
- newy = notifs.contentY - increment;
- if (newy < 0) newy = 0;
- notifs.contentY = newy;
+ notifs.scrollUp();
break;
case 2:
- newy = notifs.contentY + increment;
- if (newy > maxy) newy = maxy;
- notifs.contentY = newy;
+ notifs.scrollDown();
break;
}
}
diff --git a/notificationswatchlet/notificationswatchlet.pro b/notificationswatchlet/notificationswatchlet.pro
index cf3beff..9791ed6 100644
--- a/notificationswatchlet/notificationswatchlet.pro
+++ b/notificationswatchlet/notificationswatchlet.pro
@@ -17,6 +17,7 @@ else:unix: LIBS += -L$$OUT_PWD/../libsowatch/ -lsowatch
INCLUDEPATH += $$PWD/../libsowatch
DEPENDPATH += $$PWD/../libsowatch
+QML_IMPORT_PATH += $$PWD/../metawatch/qml
unix:!symbian {
!isEmpty(MEEGO_VERSION_MAJOR)|maemo5 {
diff --git a/sowatch.pro b/sowatch.pro
index 6c03912..a97d90a 100644
--- a/sowatch.pro
+++ b/sowatch.pro
@@ -33,20 +33,3 @@ OTHER_FILES += \
qtc_packaging/debian_fremantle/control \
qtc_packaging/debian_fremantle/compat \
qtc_packaging/debian_fremantle/changelog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/sowatchui/sowatchui.pro b/sowatchui/sowatchui.pro
index 297e394..2265ad6 100644
--- a/sowatchui/sowatchui.pro
+++ b/sowatchui/sowatchui.pro
@@ -43,6 +43,3 @@ OTHER_FILES += \
qml/main.qml \
sowatch_harmattan.desktop \
sowatch.desktop
-
-
-