diff options
Diffstat (limited to 'qt-mobile')
-rw-r--r-- | qt-mobile/qml/mobilecomponents/ApplicationWindow.qml | 17 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/ContextDrawer.qml | 31 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/GlobalDrawer.qml | 51 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/ListItemWithActions.qml | 157 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/OverlayDrawer.qml | 414 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/Page.qml | 13 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/PageRow.qml | 7 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/icons/go-next.svg | 192 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/icons/go-previous.svg | 556 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/private/ActionButton.qml | 11 | ||||
-rw-r--r-- | qt-mobile/qml/mobilecomponents/qmldir | 2 |
11 files changed, 550 insertions, 901 deletions
diff --git a/qt-mobile/qml/mobilecomponents/ApplicationWindow.qml b/qt-mobile/qml/mobilecomponents/ApplicationWindow.qml index 76662f549..0eaa81ec0 100644 --- a/qt-mobile/qml/mobilecomponents/ApplicationWindow.qml +++ b/qt-mobile/qml/mobilecomponents/ApplicationWindow.qml @@ -47,9 +47,22 @@ ApplicationWindow { */ property alias pageStack: __pageStack + function showPassiveNotification(message, timeout, actionText, callBack) { + if (!__actionButton.__passiveNotification) { + var component = Qt.createComponent("private/PassiveNotification.qml"); + __actionButton.__passiveNotification = component.createObject(contentItem.parent); + } + + __actionButton.__passiveNotification.showNotification(message, timeout, actionText, callBack); + } + PageRow { id: __pageStack - anchors.fill: parent + anchors { + fill: parent + bottomMargin: Qt.inputMethod.visible ? (root.y + root.height) - (Qt. +inputMethod.keyboardRectangle.y) : 0 + } focus: true Keys.onReleased: { if (event.key == Qt.Key_Back && stackView.depth > 1) { @@ -76,6 +89,8 @@ ApplicationWindow { property alias actionButton: __actionButton ActionButton { id: __actionButton + //put it there just to make it not accessible bu users + property Item __passiveNotification z: 9999 anchors.bottom: parent.bottom x: parent.width/2 - width/2 diff --git a/qt-mobile/qml/mobilecomponents/ContextDrawer.qml b/qt-mobile/qml/mobilecomponents/ContextDrawer.qml index aea4a5ca5..575ac3679 100644 --- a/qt-mobile/qml/mobilecomponents/ContextDrawer.qml +++ b/qt-mobile/qml/mobilecomponents/ContextDrawer.qml @@ -25,14 +25,15 @@ import org.kde.plasma.mobilecomponents 0.2 OverlayDrawer { id: root - property string title + property string title: typeof i18n !== "undefined" ? i18n("Actions") : "Actions" //This can be any type of object that a ListView can accept as model. It expects items compatible with either QAction or QQC Action - property var actions + property var actions: pageStack.lastVisiblePage ? pageStack.lastVisiblePage.contextualActions : null enabled: menu.count > 0 edge: Qt.RightEdge contentItem: QtControls.ScrollView { + implicitWidth: Units.gridUnit * 20 ListView { id: menu interactive: contentHeight > height @@ -49,9 +50,8 @@ OverlayDrawer { root.actions[0]; } } - verticalLayoutDirection: ListView.BottomToTop - //in bottomtotop all is flipped - footer: Item { + topMargin: menu.height - menu.contentHeight + header: Item { height: heading.height width: menu.width Heading { @@ -66,23 +66,11 @@ OverlayDrawer { text: root.title } } - delegate: ListItem { + delegate: BasicListItem { enabled: true - RowLayout { - height: implicitHeight + Units.smallSpacing * 2 - anchors { - left: parent.left - margins: Units.largeSpacing - } - Icon { - height: parent.height - width: height - source: modelData.iconName - } - Label { - text: model ? model.text : modelData.text - } - } + checked: modelData.checked + icon: modelData.iconName + label: model ? model.text : modelData.text onClicked: { if (modelData && modelData.trigger !== undefined) { modelData.trigger(); @@ -92,6 +80,7 @@ OverlayDrawer { } else { console.warning("Don't know how to trigger the action") } + root.opened = false; } } } diff --git a/qt-mobile/qml/mobilecomponents/GlobalDrawer.qml b/qt-mobile/qml/mobilecomponents/GlobalDrawer.qml index ff379b093..afe304166 100644 --- a/qt-mobile/qml/mobilecomponents/GlobalDrawer.qml +++ b/qt-mobile/qml/mobilecomponents/GlobalDrawer.qml @@ -142,51 +142,30 @@ OverlayDrawer { interactive: contentHeight > height - footer: ListItem { + footer: BasicListItem { visible: level > 0 enabled: true - RowLayout { - height: Units.iconSizes.smallMedium + Units.smallSpacing * 2 - anchors { - left: parent.left - } - Icon { - Layout.minimumWidth: height - Layout.maximumWidth: Layout.minimumWidth - Layout.fillHeight: true - source: "go-previous" - } - Label { - text: typeof i18n !== "undefined" ? i18n("Back") : "Back" - } - } + icon: "go-previous" + label: typeof i18n !== "undefined" ? i18n("Back") : "Back" onClicked: pageRow.pop() } - delegate: ListItem { + delegate: BasicListItem { enabled: true - RowLayout { - height: implicitHeight + Units.smallSpacing * 2 + checked: modelData.checked + icon: modelData.iconName + label: modelData.text + + Icon { anchors { - left: parent.left + top: parent.top + bottom: parent.bottom right: parent.right } - Icon { - Layout.maximumWidth: height - Layout.fillHeight: true - source: modelData.iconName - } - Label { - Layout.fillWidth: true - text: modelData.text - } - Icon { - Layout.minimumWidth: height - Layout.maximumWidth: Layout.minimumWidth - Layout.fillHeight: true - source: "go-next" - visible: modelData.children != undefined - } + width: height + source: "go-next" + visible: modelData.children != undefined } + onClicked: { if (modelData.children) { pageRow.push(menuComponent, {"model": modelData.children, "level": level + 1}); diff --git a/qt-mobile/qml/mobilecomponents/ListItemWithActions.qml b/qt-mobile/qml/mobilecomponents/ListItemWithActions.qml index 43c62d400..5fd62319d 100644 --- a/qt-mobile/qml/mobilecomponents/ListItemWithActions.qml +++ b/qt-mobile/qml/mobilecomponents/ListItemWithActions.qml @@ -98,41 +98,64 @@ Item { Rectangle { - id : background + id: shadowHolder color: Theme.backgroundColor - + x: itemMouse.x + itemMouse.width width: parent.width height: parent.height - MouseArea { - anchors.fill: parent - onClicked: itemMouse.x = 0; + } + InnerShadow { + anchors.fill: shadowHolder + radius: Units.smallSpacing * 2 + samples: 16 + horizontalOffset: verticalOffset + verticalOffset: Units.smallSpacing / 2 + color: Qt.rgba(0, 0, 0, 0.3) + source: shadowHolder + } + + MouseArea { + anchors.fill: parent + drag { + target: itemMouse + axis: Drag.XAxis + maximumX: 0 + } + onClicked: itemMouse.x = 0; + onPressed: handleArea.mouseDown(mouse); + onPositionChanged: handleArea.positionChanged(mouse); + onReleased: handleArea.released(mouse); + } + RowLayout { + anchors { + right: parent.right + verticalCenter: parent.verticalCenter + rightMargin: y } - RowLayout { - anchors { - right: parent.right - verticalCenter: parent.verticalCenter - rightMargin: y + height: Math.min( parent.height / 1.5, Units.iconSizes.medium) + property bool exclusive: false + property Item checkedButton + spacing: Units.largeSpacing + Repeater { + model: { + if (listItem.actions.length == 0) { + return null; + } else { + return listItem.actions[0].text !== undefined && + listItem.actions[0].trigger !== undefined ? + listItem.actions : + listItem.actions[0]; + } } - height: Math.min( parent.height / 1.5, Units.iconSizes.medium) - property bool exclusive: false - property Item checkedButton - spacing: 0 - Repeater { - model: { - if (listItem.actions.length == 0) { - return null; - } else { - return listItem.actions[0].text !== undefined && - listItem.actions[0].trigger !== undefined ? - listItem.actions : - listItem.actions[0]; + delegate: Icon { + Layout.fillHeight: true + Layout.minimumWidth: height + source: modelData.iconName + MouseArea { + anchors { + fill: parent + margins: -Units.smallSpacing } - } - delegate: ToolButton { - Layout.fillHeight: true - Layout.minimumWidth: height - iconName: modelData.iconName - property bool flat: false onClicked: { if (modelData && modelData.trigger !== undefined) { modelData.trigger(); @@ -148,45 +171,8 @@ Item { } } } - InnerShadow { - anchors.fill: parent - radius: Units.smallSpacing * 2 - samples: 16 - horizontalOffset: 0 - verticalOffset: Units.smallSpacing / 2 - color: Qt.rgba(0, 0, 0, 0.3) - source: background - } - LinearGradient { - id: shadow - //TODO: depends from app layout - property bool inverse: true - width: Units.smallSpacing * 2 - anchors { - right: shadow.inverse ? undefined : itemMouse.left - left: shadow.inverse ? itemMouse.right : undefined - top: itemMouse.top - bottom: itemMouse.bottom - rightMargin: -1 - } - start: Qt.point(0, 0) - end: Qt.point(Units.smallSpacing*2, 0) - gradient: Gradient { - GradientStop { - position: 0.0 - color: shadow.inverse ? Qt.rgba(0, 0, 0, 0.3) : "transparent" - } - GradientStop { - position: shadow.inverse ? 0.3 : 0.7 - color: Qt.rgba(0, 0, 0, 0.15) - } - GradientStop { - position: 1.0 - color: shadow.inverse ? "transparent" : Qt.rgba(0, 0, 0, 0.3) - } - } - } - + + MouseArea { id: itemMouse property bool changeBackgroundOnPress: !listItem.checked && !listItem.sectionDelegate @@ -223,7 +209,27 @@ Item { } } + Timer { + id: speedSampler + interval: 100 + repeat: true + property real speed + property real oldItemMouseX + onTriggered: { + speed = itemMouse.x - oldItemMouseX; + oldItemMouseX = itemMouse.x; + } + onRunningChanged: { + if (running) { + speed = 0; + } else { + speed = itemMouse.x - oldItemMouseX; + } + oldItemMouseX = itemMouse.x; + } + } MouseArea { + id: handleArea width: Units.iconSizes.smallMedium height: width preventStealing: true @@ -236,12 +242,23 @@ Item { target: itemMouse axis: Drag.XAxis maximumX: 0 + minimumX: -listItem.width + } + function mouseDown(mouse) { + speedSampler.speed = 0; + speedSampler.running = true; } + onPressed: mouseDown(mouse); + onCanceled: speedSampler.running = false; onReleased: { - if (itemMouse.x > -itemMouse.width/2) { + speedSampler.running = false; + + if (speedSampler.speed < -Units.gridUnit * 3) { + itemMouse.x = -itemMouse.width + width * 2; + } else if (speedSampler.speed > Units.gridUnit * 3 || itemMouse.x > -itemMouse.width/3) { itemMouse.x = 0; } else { - itemMouse.x = -itemMouse.width + width * 2 + itemMouse.x = -itemMouse.width + width * 2; } } onClicked: { diff --git a/qt-mobile/qml/mobilecomponents/OverlayDrawer.qml b/qt-mobile/qml/mobilecomponents/OverlayDrawer.qml index c6e9d4b36..061a9f490 100644 --- a/qt-mobile/qml/mobilecomponents/OverlayDrawer.qml +++ b/qt-mobile/qml/mobilecomponents/OverlayDrawer.qml @@ -37,11 +37,11 @@ Description: Properties: bool opened: If true the drawer is open showing the contents of the "drawer" - component. + component. Item page: It's the default property. it's the main content of the drawer page, - the part that is always shown + the part that is always shown Item contentItem: It's the part that can be pulled in and out, will act as a sidebar. @@ -53,30 +53,63 @@ AbstractDrawer { default property alias page: mainPage.data property Item contentItem - property alias opened: browserFrame.open + property alias opened: mainFlickable.open property int edge: Qt.LeftEdge property real position: 0 - - onContentItemChanged: contentItem.parent = drawerPage onPositionChanged: { - if (!enabled) { - return; - } - if (root.edge == Qt.LeftEdge) { - browserFrame.x = -browserFrame.width + position * browserFrame.width; - } else { - browserFrame.x = root.width - (position * browserFrame.width); + if (!mainFlickable.flicking && !mainFlickable.dragging && !mainAnim.running) { + switch (root.edge) { + case Qt.RightEdge: + mainFlickable.contentX = drawerPage.width * position; + break; + case Qt.LeftEdge: + mainFlickable.contentX = drawerPage.width * (1-position); + break; + case Qt.BottomEdge: + mainFlickable.contentY = drawerPage.height * position; + break; + } } } + onContentItemChanged: { + contentItem.parent = drawerPage + contentItem.anchors.fill = drawerPage + } + + function open () { - mouseEventListener.startBrowserFrameX = browserFrame.x; - browserFrame.state = "Dragging"; - browserFrame.state = "Open"; + mainAnim.to = 0; + switch (root.edge) { + case Qt.RightEdge: + mainAnim.to = drawerPage.width; + break; + case Qt.BottomEdge: + mainAnim.to = drawerPage.height; + break; + case Qt.LeftEdge: + case Qt.TopEdge: + default: + mainAnim.to = 0; + break; + } + mainAnim.running = true; + mainFlickable.open = true; } function close () { - mouseEventListener.startBrowserFrameX = browserFrame.x; - browserFrame.state = "Dragging"; - browserFrame.state = "Closed"; + switch (root.edge) { + case Qt.RightEdge: + case Qt.BottomEdge: + mainAnim.to = 0; + break; + case Qt.LeftEdge: + mainAnim.to = drawerPage.width; + break; + case Qt.TopEdge: + mainAnim.to = drawerPage.height; + break; + } + mainAnim.running = true; + mainFlickable.open = false; } Item { @@ -88,236 +121,257 @@ AbstractDrawer { Rectangle { anchors.fill: parent color: "black" - opacity: 0.6 * (root.edge == Qt.LeftEdge - ? ((browserFrame.x + browserFrame.width) / browserFrame.width) - : (1 - browserFrame.x / root.width)) + opacity: 0.6 * mainFlickable.internalPosition + } + + + NumberAnimation { + id: mainAnim + target: mainFlickable + properties: (root.edge == Qt.RightEdge || root.edge == Qt.LeftEdge) ? "contentX" : "contentY" + duration: Units.longDuration + easing.type: Easing.InOutQuad } MouseArea { + id: edgeMouse anchors { right: root.edge == Qt.LeftEdge ? undefined : parent.right - left: root.edge == Qt.LeftEdge ? parent.left : undefined - top: parent.top - bottom: parent.bottom + left: root.edge == Qt.RightEdge ? undefined : parent.left + top: root.edge == Qt.BottomEdge ? undefined : parent.top + bottom: root.edge == Qt.TopEdge ? undefined : parent.bottom } z: 99 - width: Units.smallSpacing - onPressed: mouseEventListener.managePressed(mouse) - onPositionChanged: mouseEventListener.positionChanged(mouse) - onReleased: mouseEventListener.released(mouse) - } - MouseArea { - id: mouseEventListener - anchors.fill: parent - drag.filterChildren: true - property int startBrowserFrameX + width: Units.smallSpacing * 2 + height: Units.smallSpacing * 2 property int startMouseX property real oldMouseX + property int startMouseY + property real oldMouseY property bool startDragging: false - property string startState - enabled: browserFrame.state != "Closed" - onPressed: managePressed(mouse) - function managePressed(mouse) { + onPressed: { if (drawerPage.children.length == 0) { mouse.accepted = false; return; } + speedSampler.restart(); mouse.accepted = true; - startBrowserFrameX = browserFrame.x; oldMouseX = startMouseX = mouse.x; + oldMouseY = startMouseY = mouse.y; startDragging = false; - startState = browserFrame.state; - browserFrame.state = "Dragging"; - browserFrame.x = startBrowserFrameX; } onPositionChanged: { - if (drawerPage.children.length == 0) { + if (!root.contentItem) { mouse.accepted = false; return; } - if (mouse.x < Units.gridUnit || - Math.abs(mouse.x - startMouseX) > root.width / 5) { + if (Math.abs(mouse.x - startMouseX) > root.width / 5 || + Math.abs(mouse.y - startMouseY) > root.height / 5) { startDragging = true; } if (startDragging) { - browserFrame.x = root.edge == Qt.LeftEdge - ? Math.min(0, browserFrame.x + mouse.x - oldMouseX) - : Math.max(root.width - browserFrame.width, browserFrame.x + mouse.x - oldMouseX); + switch (root.edge) { + case Qt.RightEdge: + mainFlickable.contentX = Math.min(mainItem.width - root.width, mainFlickable.contentX + oldMouseX - mouse.x); + break; + case Qt.LeftEdge: + mainFlickable.contentX = Math.max(0, mainFlickable.contentX + oldMouseX - mouse.x); + break; + case Qt.BottomEdge: + mainFlickable.contentY = Math.min(mainItem.height - root.height, mainFlickable.contentY + oldMouseY - mouse.y); + break; + case Qt.TopEdge: + mainFlickable.contentY = Math.max(0, mainFlickable.contentY + oldMouseY - mouse.y); + break; + } } oldMouseX = mouse.x; + oldMouseY = mouse.y; } - onReleased: { - if (drawerPage.children.length == 0) { - mouse.accepted = false; - return; - } - - if (root.edge == Qt.LeftEdge) { - if (mouse.x < Units.gridUnit) { - browserFrame.state = "Closed"; - } else if (browserFrame.x - startBrowserFrameX > browserFrame.width / 3) { - browserFrame.state = "Open"; - } else if (startBrowserFrameX - browserFrame.x > browserFrame.width / 3) { - browserFrame.state = "Closed"; + speedSampler.running = false; + if (speedSampler.speed != 0) { + if (root.edge == Qt.RightEdge || root.edge == Qt.LeftEdge) { + mainFlickable.flick(speedSampler.speed, 0); } else { - browserFrame.state = startState + mainFlickable.flick(0, speedSampler.speed); } - } else { - if (mouse.x > width - Units.gridUnit) { - browserFrame.state = "Closed"; - } else if (browserFrame.x - startBrowserFrameX > browserFrame.width / 3) { - browserFrame.state = "Closed"; - } else if (startBrowserFrameX - browserFrame.x > browserFrame.width / 3) { - browserFrame.state = "Open"; + if (mainFlickable.internalPosition > 0.5) { + root.open(); } else { - browserFrame.state = startState; + root.close(); } } } - onCanceled: { - if (oldMouseX > width - Units.gridUnit) { - browserFrame.state = "Closed"; - } else if (Math.abs(browserFrame.x - startBrowserFrameX) > browserFrame.width / 3) { - browserFrame.state = startState == "Open" ? "Closed" : "Open"; + } + + Timer { + id: speedSampler + interval: 100 + repeat: true + property real speed + property real oldContentX + property real oldContentY + onTriggered: { + if (root.edge == Qt.RightEdge || root.edge == Qt.LeftEdge) { + speed = (mainFlickable.contentX - oldContentX) * 10; + oldContentX = mainFlickable.contentX; } else { - browserFrame.state = "Open"; - } - } - onClicked: { - if (Math.abs(startMouseX - mouse.x) > Units.gridUnit) { - return; - } - if ((root.edge == Qt.LeftEdge && mouse.x > browserFrame.width) || - (root.edge != Qt.LeftEdge && mouse.x < browserFrame.x)) { - browserFrame.state = startState == "Open" ? "Closed" : "Open"; - root.clicked(); + speed = (mainFlickable.contentY - oldContentY) * 10; + oldContentY = mainFlickable.contentY; } } - Rectangle { - id: browserFrame - z: 100 - color: Theme.viewBackgroundColor - anchors { - top: parent.top - bottom: parent.bottom - } - - width: { - if (drawerPage.children.length > 0 && drawerPage.children[0].implicitWidth > 0) { - return Math.min( parent.width - Units.gridUnit, drawerPage.children[0].implicitWidth) + onRunningChanged: { + if (running) { + speed = 0; + oldContentX = mainFlickable.contentX; + oldContentY = mainFlickable.contentY; + } else { + if (root.edge == Qt.RightEdge || root.edge == Qt.LeftEdge) { + speed = (oldContentX - mainFlickable.contentX) * 10; } else { - return parent.width - Units.gridUnit * 3 + speed = (oldContentY - mainFlickable.contentY) * 10; } } + } + } - onXChanged: { - root.position = root.edge == Qt.LeftEdge ? 1 + browserFrame.x/browserFrame.width : (root.width - browserFrame.x)/browserFrame.width; + MouseArea { + id: mainMouseArea + anchors.fill: parent + drag.filterChildren: true + onClicked: { + if ((root.edge == Qt.LeftEdge && mouse.x < drawerPage.width) || + (root.edge == Qt.RightEdge && mouse.x > drawerPage.x) || + (root.edge == Qt.TopEdge && mouse.y < drawerPage.height) || + (root.edge == Qt.BottomEdge && mouse.y > drawerPage.y)) { + return; } + root.clicked(); + root.close(); + } + enabled: (root.edge == Qt.LeftEdge && !mainFlickable.atXEnd) || + (root.edge == Qt.RightEdge && !mainFlickable.atXBeginning) || + (root.edge == Qt.TopEdge && !mainFlickable.atYEnd) || + (root.edge == Qt.BottomEdge && !mainFlickable.atYBeginning) || + mainFlickable.moving - state: "Closed" - onStateChanged: open = (state != "Closed") - property bool open: false - onOpenChanged: { - if (browserFrame.state == "Dragging" || drawerPage.children.length == 0) { - return; - } + Flickable { + id: mainFlickable + property bool open + anchors.fill: parent + onOpenChanged: { if (open) { - browserFrame.state = "Open"; + root.open(); } else { - browserFrame.state = "Closed"; + root.close(); } } - - LinearGradient { - width: Units.gridUnit/2 - anchors { - right: root.edge == Qt.LeftEdge ? undefined : parent.left - left: root.edge == Qt.LeftEdge ? parent.right : undefined - top: parent.top - bottom: parent.bottom + enabled: parent.enabled + flickableDirection: root.edge == Qt.LeftEdge || root.edge == Qt.RightEdge ? Flickable.HorizontalFlick : Flickable.VerticalFlick + contentWidth: mainItem.width + contentHeight: mainItem.height + boundsBehavior: Flickable.StopAtBounds + property real internalPosition: { + switch (root.edge) { + case Qt.RightEdge: + return mainFlickable.contentX/drawerPage.width; + case Qt.LeftEdge: + return 1 - (mainFlickable.contentX/drawerPage.width); + case Qt.BottomEdge: + return mainFlickable.contentY/drawerPage.height; + case Qt.TopEdge: + return 1 - (mainFlickable.contentY/drawerPage.height); } - opacity: root.position == 0 ? 0 : 1 - start: Qt.point(0, 0) - end: Qt.point(Units.gridUnit/2, 0) - gradient: Gradient { - GradientStop { - position: 0.0 - color: root.edge == Qt.LeftEdge ? Qt.rgba(0, 0, 0, 0.3) : "transparent" - } - GradientStop { - position: root.edge == Qt.LeftEdge ? 0.3 : 0.7 - color: Qt.rgba(0, 0, 0, 0.15) - } - GradientStop { - position: 1.0 - color: root.edge == Qt.LeftEdge ? "transparent" : Qt.rgba(0, 0, 0, 0.3) - } - } - Behavior on opacity { - NumberAnimation { - duration: Units.longDuration - easing.type: Easing.InOutQuad + } + onInternalPositionChanged: { + root.position = internalPosition; + } + + onFlickingChanged: { + if (!flicking) { + if (internalPosition > 0.5) { + root.open(); + } else { + root.close(); } } } - - - MouseArea { - id: drawerPage - anchors { - fill: parent - //leftMargin: Units.gridUnit + onMovingChanged: { + if (!moving) { + flickingChanged(); } - clip: true - onChildrenChanged: drawerPage.children[0].anchors.fill = drawerPage } - states: [ - State { - name: "Open" - PropertyChanges { - target: browserFrame - x: root.edge == Qt.LeftEdge ? 0 : root.width - browserFrame.width + Item { + id: mainItem + width: root.width + ((root.edge == Qt.RightEdge || root.edge == Qt.LeftEdge) ? drawerPage.width : 0) + height: root.height + ((root.edge == Qt.TopEdge || root.edge == Qt.BottomEdge) ? drawerPage.height : 0) + onWidthChanged: { + if (root.edge == Qt.LeftEdge) { + mainFlickable.contentX = drawerPage.width; } - }, - State { - name: "Dragging" - //workaround for a quirkiness of the state machine - //if no x binding gets defined in this state x will be set to whatever last x it had last time it was in this state - PropertyChanges { - target: browserFrame - x: mouseEventListener.startBrowserFrameX + } + onHeightChanged: { + if (root.edge == Qt.TopEdge) { + mainFlickable.contentY = drawerPage.Height; } - }, - State { - name: "Closed" - PropertyChanges { - target: browserFrame - x: root.edge == Qt.LeftEdge ? -browserFrame.width : root.width + } + + Rectangle { + id: drawerPage + anchors { + left: root.edge != Qt.RightEdge ? parent.left : undefined + right: root.edge != Qt.LeftEdge ? parent.right : undefined + top: root.edge != Qt.BottomEdge ? parent.top : undefined + bottom: root.edge != Qt.TopEdge ? parent.bottom : undefined } + color: Theme.viewBackgroundColor + clip: true + width: root.contentItem ? Math.min(root.contentItem.implicitWidth, root.width - Units.gridUnit * 2) : 0 + height: root.contentItem ? Math.min(root.contentItem.implicitHeight, root.height - Units.gridUnit * 2) : 0 } - ] + LinearGradient { + width: Units.gridUnit/2 + height: Units.gridUnit/2 + anchors { + right: root.edge == Qt.RightEdge ? drawerPage.left : (root.edge == Qt.LeftEdge ? undefined : parent.right) + left: root.edge == Qt.LeftEdge ? drawerPage.right : (root.edge == Qt.RightEdge ? undefined : parent.left) + top: root.edge == Qt.TopEdge ? drawerPage.bottom : (root.edge == Qt.BottomEdge ? undefined : parent.top) + bottom: root.edge == Qt.BottomEdge ? drawerPage.top : (root.edge == Qt.TopEdge ? undefined : parent.bottom) + } - transitions: [ - Transition { - //Exclude Dragging - to: "Open,Closed" - NumberAnimation { - id: transitionAnim - properties: "x" - duration: Units.longDuration - easing.type: Easing.InOutQuad + opacity: root.position == 0 ? 0 : 1 + start: Qt.point(0, 0) + end: (root.edge == Qt.RightEdge || root.edge == Qt.LeftEdge) ? Qt.point(Units.gridUnit/2, 0) : Qt.point(0, Units.gridUnit/2) + gradient: Gradient { + GradientStop { + position: 0.0 + color: root.edge == Qt.LeftEdge ? Qt.rgba(0, 0, 0, 0.3) : "transparent" + } + GradientStop { + position: root.edge == Qt.LeftEdge ? 0.3 : 0.7 + color: Qt.rgba(0, 0, 0, 0.15) + } + GradientStop { + position: 1.0 + color: root.edge == Qt.LeftEdge ? "transparent" : Qt.rgba(0, 0, 0, 0.3) + } + } + Behavior on opacity { + NumberAnimation { + duration: Units.longDuration + easing.type: Easing.InOutQuad + } } } - ] + } } } } - diff --git a/qt-mobile/qml/mobilecomponents/Page.qml b/qt-mobile/qml/mobilecomponents/Page.qml index fe36a034a..449c7aa47 100644 --- a/qt-mobile/qml/mobilecomponents/Page.qml +++ b/qt-mobile/qml/mobilecomponents/Page.qml @@ -47,23 +47,10 @@ Rectangle { */ property alias contextualActions: internalContextualActions.data - property Flickable flickable Item { id: internalContextualActions } Layout.fillWidth: true color: "transparent" - -/* - Connections { - target: flickable - property real oldContentY: (flickable == null) ? 0 : flickable.contentY - onContentYChanged: { - actionButton.transform[0].y = Math.min(actionButton.height, Math.max(0, actionButton.transform[0].y + (flickable.contentY - oldContentY))); - - oldContentY = flickable.contentY; - } - } - */ } diff --git a/qt-mobile/qml/mobilecomponents/PageRow.qml b/qt-mobile/qml/mobilecomponents/PageRow.qml index ab0e9a5ed..b69b39c8f 100644 --- a/qt-mobile/qml/mobilecomponents/PageRow.qml +++ b/qt-mobile/qml/mobilecomponents/PageRow.qml @@ -56,7 +56,7 @@ Item { property int depth: Engine.getDepth() property Item currentPage: null - property Item lastVisiblePage + property Item lastVisiblePage: currentPage property ToolBar toolBar property variant initialPage //A column is wide enough for 30 characters @@ -154,7 +154,10 @@ Item { return; } - actualRoot.lastVisiblePage = root.children[Math.floor((mainFlickable.contentX + mainFlickable.width - 1)/columnWidth)].page + actualRoot.lastVisiblePage = root.children[Math.floor((mainFlickable.contentX + mainFlickable.width - 1)/columnWidth)].page; + if (!actualRoot.lastVisiblePage) { + actualRoot.lastVisiblePage = actualRoot.currentPage; + } } } } diff --git a/qt-mobile/qml/mobilecomponents/icons/go-next.svg b/qt-mobile/qml/mobilecomponents/icons/go-next.svg index f2828f18f..fe4e783de 100644 --- a/qt-mobile/qml/mobilecomponents/icons/go-next.svg +++ b/qt-mobile/qml/mobilecomponents/icons/go-next.svg @@ -1,144 +1,76 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?xml version="1.0"?> <!-- 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="24" - height="24" - id="svg3869" - version="1.1" - inkscape:version="0.91 r13725" - sodipodi:docname="go-next.svg"> - <defs - id="defs3871"> - <linearGradient - id="linearGradient3257"> - <stop - offset="0" - style="stop-color:#a50000;stop-opacity:1" - id="stop3259" /> - <stop - offset="1" - style="stop-color:#e73800;stop-opacity:1" - id="stop3261" /> +<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="24" height="24" id="svg3869" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="go-next.svg"> + <defs id="defs3871"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#4d4d4d; + } + .ColorScheme-Background { + color:#eff0f1; + } + .ColorScheme-Highlight { + color:#3daee9; + } + .ColorScheme-ViewText { + color:#31363b; + } + .ColorScheme-ViewBackground { + color:#fcfcfc; + } + .ColorScheme-ViewHover { + color:#93cee9; + } + .ColorScheme-ViewFocus{ + color:#3daee9; + } + .ColorScheme-ButtonText { + color:#31363b; + } + .ColorScheme-ButtonBackground { + color:#eff0f1; + } + .ColorScheme-ButtonHover { + color:#93cee9; + } + .ColorScheme-ButtonFocus{ + color:#3daee9; + } + </style> + <linearGradient id="linearGradient3257"> + <stop offset="0" style="stop-color:#a50000;stop-opacity:1" id="stop3259"/> + <stop offset="1" style="stop-color:#e73800;stop-opacity:1" id="stop3261"/> </linearGradient> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath4210"> - <rect - y="1024.3622" - x="-7" - height="34" - width="34" - id="rect4212" - style="opacity:1;fill:#0000ff;fill-opacity:0.51376145;stroke:none;stroke-opacity:1" /> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4210"> + <rect y="1024.3622" x="-7" height="34" width="34" id="rect4212" style="opacity:1;fill:#0000ff;fill-opacity:0.51376145;stroke:none;stroke-opacity:1"/> </clipPath> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath4160"> - <rect - style="opacity:1;fill:#aade87;fill-opacity:0.47247709;stroke:none;stroke-opacity:1" - id="rect4162" - width="32" - height="32.000015" - x="-6" - y="1028.3619" /> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4160"> + <rect style="opacity:1;fill:#aade87;fill-opacity:0.47247709;stroke:none;stroke-opacity:1" id="rect4162" width="32" height="32.000015" x="-6" y="1028.3619"/> </clipPath> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="22.627416" - inkscape:cx="5.4926209" - inkscape:cy="10.264796" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="true" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" - inkscape:window-width="1366" - inkscape:window-height="709" - inkscape:window-x="-4" - inkscape:window-y="0" - inkscape:window-maximized="1" - inkscape:showpageshadow="false" - inkscape:object-nodes="true" - inkscape:snap-bbox="true"> - <inkscape:grid - type="xygrid" - id="grid4132" /> - <sodipodi:guide - position="4,18" - orientation="18,0" - id="guide4138" /> - <sodipodi:guide - position="5,3" - orientation="0,18" - id="guide4140" /> - <sodipodi:guide - position="20,2.0000174" - orientation="-18,0" - id="guide4142" /> - <sodipodi:guide - position="2,21" - orientation="0,-18" - id="guide4144" /> - <sodipodi:guide - position="3,19.000017" - orientation="16,0" - id="guide4146" /> - <sodipodi:guide - position="2,4" - orientation="0,16" - id="guide4148" /> - <sodipodi:guide - position="21,20" - orientation="-16,0" - id="guide4150" /> - <sodipodi:guide - position="2,20" - orientation="0,-16" - id="guide4152" /> + <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627416" inkscape:cx="5.4926209" inkscape:cy="10.264796" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1366" inkscape:window-height="709" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false" inkscape:object-nodes="true" inkscape:snap-bbox="true"> + <inkscape:grid type="xygrid" id="grid4132"/> + <sodipodi:guide position="4,18" orientation="18,0" id="guide4138"/> + <sodipodi:guide position="5,3" orientation="0,18" id="guide4140"/> + <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4142"/> + <sodipodi:guide position="2,21" orientation="0,-18" id="guide4144"/> + <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4146"/> + <sodipodi:guide position="2,4" orientation="0,16" id="guide4148"/> + <sodipodi:guide position="21,20" orientation="-16,0" id="guide4150"/> + <sodipodi:guide position="2,20" orientation="0,-16" id="guide4152"/> </sodipodi:namedview> - <metadata - id="metadata3874"> + <metadata id="metadata3874"> <rdf:RDF> - <cc:Work - rdf:about=""> + <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> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:title/> </cc:Work> </rdf:RDF> </metadata> - <g - inkscape:label="Capa 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-326,-532.3622)"> - <g - transform="translate(326,-497)" - id="layer1-9" - inkscape:label="Capa 1"> - <path - id="rect4176" - transform="translate(-5e-7,1030.3622)" - d="M 7.7070312,3 7,3.7070312 l 6.125,6.125 L 14.292969,11 13.125,12.167969 7,18.292969 7.7070312,19 13.832031,12.875 15.707031,11 13.832031,9.125 7.7070312,3 Z" - style="fill:#4d4d4d;fill-opacity:1;stroke:none" - inkscape:connector-curvature="0" /> + <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-326,-532.3622)"> + <g transform="translate(326,-497)" id="layer1-9" inkscape:label="Capa 1"> + <path id="rect4176" transform="translate(-5e-7,1030.3622)" d="M 7.7070312,3 7,3.7070312 l 6.125,6.125 L 14.292969,11 13.125,12.167969 7,18.292969 7.7070312,19 13.832031,12.875 15.707031,11 13.832031,9.125 7.7070312,3 Z" style="fill:currentColor;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" class="ColorScheme-Text"/> </g> </g> </svg> diff --git a/qt-mobile/qml/mobilecomponents/icons/go-previous.svg b/qt-mobile/qml/mobilecomponents/icons/go-previous.svg index 7cfd42891..743ff18e2 100644 --- a/qt-mobile/qml/mobilecomponents/icons/go-previous.svg +++ b/qt-mobile/qml/mobilecomponents/icons/go-previous.svg @@ -1,463 +1,127 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<?xml version="1.0"?> <!-- 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="24" - height="24" - id="svg3869" - version="1.1" - inkscape:version="0.91 r13725" - sodipodi:docname="go-previous.svg"> - <defs - id="defs3871"> - <linearGradient - id="linearGradient3257"> - <stop - offset="0" - style="stop-color:#a50000;stop-opacity:1" - id="stop3259" /> - <stop - offset="1" - style="stop-color:#e73800;stop-opacity:1" - id="stop3261" /> +<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="24" height="24" id="svg3869" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="go-previous.svg"> + <defs id="defs3871"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#4d4d4d; + } + .ColorScheme-Background { + color:#eff0f1; + } + .ColorScheme-Highlight { + color:#3daee9; + } + .ColorScheme-ViewText { + color:#31363b; + } + .ColorScheme-ViewBackground { + color:#fcfcfc; + } + .ColorScheme-ViewHover { + color:#93cee9; + } + .ColorScheme-ViewFocus{ + color:#3daee9; + } + .ColorScheme-ButtonText { + color:#31363b; + } + .ColorScheme-ButtonBackground { + color:#eff0f1; + } + .ColorScheme-ButtonHover { + color:#93cee9; + } + .ColorScheme-ButtonFocus{ + color:#3daee9; + } + </style> + <linearGradient id="linearGradient3257"> + <stop offset="0" style="stop-color:#a50000;stop-opacity:1" id="stop3259"/> + <stop offset="1" style="stop-color:#e73800;stop-opacity:1" id="stop3261"/> </linearGradient> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath4210"> - <rect - y="1024.3622" - x="-7" - height="34" - width="34" - id="rect4212" - style="opacity:1;fill:#0000ff;fill-opacity:0.51376145;stroke:none;stroke-opacity:1" /> + <inkscape:perspective id="perspective4146-36" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-7"/> + <inkscape:perspective id="perspective4146-0" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-8"/> + <inkscape:perspective id="perspective4146-3" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146"/> + <inkscape:perspective id="perspective4146-36-7" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-7-6"/> + <inkscape:perspective id="perspective4146-0-6" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-8-7"/> + <inkscape:perspective id="perspective4146-3-9" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-2"/> + <inkscape:perspective id="perspective4146-36-4" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-7-7"/> + <inkscape:perspective id="perspective4146-0-0" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-8-6"/> + <inkscape:perspective id="perspective4146-3-81" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-6"/> + <inkscape:perspective id="perspective4146-36-7-2" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-7-6-3"/> + <inkscape:perspective id="perspective4146-0-6-4" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-8-7-6"/> + <inkscape:perspective id="perspective4146-3-9-0" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-2-1"/> + <inkscape:perspective id="perspective4146-36-8" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-7-0"/> + <inkscape:perspective id="perspective4146-0-3" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-8-78"/> + <inkscape:perspective id="perspective4146-3-1" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-05"/> + <inkscape:perspective id="perspective4146-36-3" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-7-8"/> + <inkscape:perspective id="perspective4146-0-9" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-8-3"/> + <inkscape:perspective id="perspective4146-3-4" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-9"/> + <inkscape:perspective id="perspective4146-36-7-6" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-7-6-0"/> + <inkscape:perspective id="perspective4146-0-6-7" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-3-8-7-7"/> + <inkscape:perspective id="perspective4146-3-9-7" inkscape:persp3d-origin="12 : 8 : 1" inkscape:vp_z="24 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 12 : 1" sodipodi:type="inkscape:persp3d"/> + <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 12 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="24 : 12 : 1" inkscape:persp3d-origin="12 : 8 : 1" id="perspective4146-2-13"/> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4210"> + <rect y="1024.3622" x="-7" height="34" width="34" id="rect4212" style="opacity:1;fill:#0000ff;fill-opacity:0.51376145;stroke:none;stroke-opacity:1"/> </clipPath> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath4160"> - <rect - style="opacity:1;fill:#aade87;fill-opacity:0.47247709;stroke:none;stroke-opacity:1" - id="rect4162" - width="32" - height="32.000015" - x="-6" - y="1028.3619" /> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4160"> + <rect style="opacity:1;fill:#aade87;fill-opacity:0.47247709;stroke:none;stroke-opacity:1" id="rect4162" width="32" height="32.000015" x="-6" y="1028.3619"/> </clipPath> - <clipPath - id="clipPath4160-4" - clipPathUnits="userSpaceOnUse"> - <rect - y="1023.3622" - x="7" - height="1" - width="1" - id="rect4162-5" - style="opacity:1;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-opacity:1" /> + <clipPath id="clipPath4160-4" clipPathUnits="userSpaceOnUse"> + <rect y="1023.3622" x="7" height="1" width="1" id="rect4162-5" style="opacity:1;fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-opacity:1"/> </clipPath> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath16"> - <path - d="m 0,706.465 1490.926,0 L 1490.926,0 0,0 0,706.465 Z" - id="path18" /> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath16"> + <path d="m 0,706.465 1490.926,0 L 1490.926,0 0,0 0,706.465 Z" id="path18"/> </clipPath> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath24"> - <path - d="m 22.1953,686.117 1447.7347,0 0,-667.1902 -1447.7347,0 L 22.1953,686.117 Z" - id="path26" /> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath24"> + <path d="m 22.1953,686.117 1447.7347,0 0,-667.1902 -1447.7347,0 L 22.1953,686.117 Z" id="path26"/> </clipPath> - <inkscape:perspective - id="perspective4146-36" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-7" /> - <inkscape:perspective - id="perspective4146-0" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-8" /> - <inkscape:perspective - id="perspective4146-3" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146" /> - <inkscape:perspective - id="perspective4146-36-7" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-7-6" /> - <inkscape:perspective - id="perspective4146-0-6" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-8-7" /> - <inkscape:perspective - id="perspective4146-3-9" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-2" /> - <inkscape:perspective - id="perspective4146-36-4" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-7-7" /> - <inkscape:perspective - id="perspective4146-0-0" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-8-6" /> - <inkscape:perspective - id="perspective4146-3-81" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-6" /> - <inkscape:perspective - id="perspective4146-36-7-2" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-7-6-3" /> - <inkscape:perspective - id="perspective4146-0-6-4" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-8-7-6" /> - <inkscape:perspective - id="perspective4146-3-9-0" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-2-1" /> - <inkscape:perspective - id="perspective4146-36-8" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-7-0" /> - <inkscape:perspective - id="perspective4146-0-3" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-8-78" /> - <inkscape:perspective - id="perspective4146-3-1" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-05" /> - <inkscape:perspective - id="perspective4146-36-3" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-7-8" /> - <inkscape:perspective - id="perspective4146-0-9" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-8-3" /> - <inkscape:perspective - id="perspective4146-3-4" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-9" /> - <inkscape:perspective - id="perspective4146-36-7-6" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-7-6-0" /> - <inkscape:perspective - id="perspective4146-0-6-7" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-3-8-7-7" /> - <inkscape:perspective - id="perspective4146-3-9-7" - inkscape:persp3d-origin="12 : 8 : 1" - inkscape:vp_z="24 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_x="0 : 12 : 1" - sodipodi:type="inkscape:persp3d" /> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 12 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="24 : 12 : 1" - inkscape:persp3d-origin="12 : 8 : 1" - id="perspective4146-2-13" /> </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="22.627416" - inkscape:cx="5.4926209" - inkscape:cy="10.264796" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="true" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" - inkscape:window-width="1366" - inkscape:window-height="709" - inkscape:window-x="-4" - inkscape:window-y="0" - inkscape:window-maximized="1" - inkscape:showpageshadow="false" - inkscape:object-nodes="true" - inkscape:snap-bbox="true"> - <inkscape:grid - type="xygrid" - id="grid4132" /> - <sodipodi:guide - position="4,18" - orientation="18,0" - id="guide4138" /> - <sodipodi:guide - position="5,3" - orientation="0,18" - id="guide4140" /> - <sodipodi:guide - position="20,2.0000174" - orientation="-18,0" - id="guide4142" /> - <sodipodi:guide - position="2,21" - orientation="0,-18" - id="guide4144" /> - <sodipodi:guide - position="3,19.000017" - orientation="16,0" - id="guide4146" /> - <sodipodi:guide - position="2,4" - orientation="0,16" - id="guide4148" /> - <sodipodi:guide - position="21,20" - orientation="-16,0" - id="guide4150" /> - <sodipodi:guide - position="2,20" - orientation="0,-16" - id="guide4152" /> + <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="22.627416" inkscape:cx="5.4926209" inkscape:cy="10.264796" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1366" inkscape:window-height="709" inkscape:window-x="-4" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:showpageshadow="false" inkscape:object-nodes="true" inkscape:snap-bbox="true"> + <inkscape:grid type="xygrid" id="grid4132"/> + <sodipodi:guide position="4,18" orientation="18,0" id="guide4138"/> + <sodipodi:guide position="5,3" orientation="0,18" id="guide4140"/> + <sodipodi:guide position="20,2.0000174" orientation="-18,0" id="guide4142"/> + <sodipodi:guide position="2,21" orientation="0,-18" id="guide4144"/> + <sodipodi:guide position="3,19.000017" orientation="16,0" id="guide4146"/> + <sodipodi:guide position="2,4" orientation="0,16" id="guide4148"/> + <sodipodi:guide position="21,20" orientation="-16,0" id="guide4150"/> + <sodipodi:guide position="2,20" orientation="0,-16" id="guide4152"/> </sodipodi:namedview> - <metadata - id="metadata3874"> + <metadata id="metadata3874"> <rdf:RDF> - <cc:Work - rdf:about=""> + <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> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:title/> </cc:Work> </rdf:RDF> </metadata> - <g - inkscape:label="Capa 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-326,-532.3622)"> - <g - transform="translate(326.70703,-497)" - id="layer1-2" - inkscape:label="Capa 1"> - <path - id="rect4176" - transform="translate(-5e-7,1030.3622)" - d="m 14.292969,3 -6.1250002,6.125 -1.875,1.875 1.875,1.875 L 14.292969,19 15,18.292969 8.875,12.167969 7.7070312,11 8.875,9.8320312 15,3.7070312 14.292969,3 Z" - style="fill:#4d4d4d;fill-opacity:1;stroke:none" - inkscape:connector-curvature="0" /> + <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-326,-532.3622)"> + <g transform="translate(326.70703,-497)" id="layer1-2" inkscape:label="Capa 1"> + <path id="rect4176" transform="translate(-5e-7,1030.3622)" d="m 14.292969,3 -6.1250002,6.125 -1.875,1.875 1.875,1.875 L 14.292969,19 15,18.292969 8.875,12.167969 7.7070312,11 8.875,9.8320312 15,3.7070312 14.292969,3 Z" style="fill:currentColor;fill-opacity:1;stroke:none" inkscape:connector-curvature="0" class="ColorScheme-Text"/> </g> </g> </svg> diff --git a/qt-mobile/qml/mobilecomponents/private/ActionButton.qml b/qt-mobile/qml/mobilecomponents/private/ActionButton.qml index 9ad55ff7c..80f037e48 100644 --- a/qt-mobile/qml/mobilecomponents/private/ActionButton.qml +++ b/qt-mobile/qml/mobilecomponents/private/ActionButton.qml @@ -27,6 +27,8 @@ MouseArea { property alias iconSource: icon.source property bool checkable: false property bool checked: false + //either Action or QAction should work here + property QtObject action Layout.minimumWidth: Units.iconSizes.large Layout.maximumWidth: Layout.minimumWidth implicitWidth: Units.iconSizes.large @@ -34,8 +36,8 @@ MouseArea { drag { target: button axis: Drag.XAxis - minimumX: contextDrawer ? 0 : parent.width/2 - width/2 - maximumX: globalDrawer ? parent.width : parent.width/2 - width/2 + minimumX: parent.width/2 - width/2 - (contextDrawer && contextDrawer.enabled ? contextDrawer.contentItem.width : 0) + maximumX: parent.width/2 - width/2 + (globalDrawer && globalDrawer.enabled ? globalDrawer.contentItem.width : 0) } function toggleVisibility() { showAnimation.running = false; @@ -74,6 +76,11 @@ MouseArea { if (checkable) { checked = !checked; } + + //if an action has been assigned, trigger it + if (button.action && button.action.trigger) { + button.action.trigger(); + } } Connections { target: globalDrawer diff --git a/qt-mobile/qml/mobilecomponents/qmldir b/qt-mobile/qml/mobilecomponents/qmldir index 53daf98a2..999f823ea 100644 --- a/qt-mobile/qml/mobilecomponents/qmldir +++ b/qt-mobile/qml/mobilecomponents/qmldir @@ -16,4 +16,6 @@ Icon 0.2 Icon.qml Label 0.2 Label.qml Heading 0.2 Heading.qml ListItem 0.2 ListItem.qml +BasicListItem 0.2 BasicListItem.qml ListItemWithActions 0.2 ListItemWithActions.qml +RefreshableScrollView 0.2 RefreshableScrollView.qml |