summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--packaging/android/build.sh45
-rw-r--r--qt-mobile/qml/mobile-resources.qrc1
-rw-r--r--qt-mobile/qml/mobilecomponents/ActionGroup.qml27
-rw-r--r--qt-mobile/qml/mobilecomponents/ApplicationWindow.qml99
-rw-r--r--qt-mobile/qml/mobilecomponents/BasicListItem.qml52
-rw-r--r--qt-mobile/qml/mobilecomponents/ContextDrawer.qml89
-rw-r--r--qt-mobile/qml/mobilecomponents/GlobalDrawer.qml183
-rw-r--r--qt-mobile/qml/mobilecomponents/Heading.qml74
-rw-r--r--qt-mobile/qml/mobilecomponents/Icon.qml48
-rw-r--r--qt-mobile/qml/mobilecomponents/IconGrid.qml238
-rw-r--r--qt-mobile/qml/mobilecomponents/Label.qml59
-rw-r--r--qt-mobile/qml/mobilecomponents/ListItem.qml129
-rw-r--r--qt-mobile/qml/mobilecomponents/ListItemWithActions.qml292
-rw-r--r--qt-mobile/qml/mobilecomponents/OverlayDrawer.qml377
-rw-r--r--qt-mobile/qml/mobilecomponents/Page.qml53
-rw-r--r--qt-mobile/qml/mobilecomponents/PageRow.qml513
-rw-r--r--qt-mobile/qml/mobilecomponents/SplitDrawer.qml234
-rw-r--r--qt-mobile/qml/mobilecomponents/Theme.qml62
-rw-r--r--qt-mobile/qml/mobilecomponents/Units.qml101
-rw-r--r--qt-mobile/qml/mobilecomponents/icons/dialog-cancel.svg122
-rw-r--r--qt-mobile/qml/mobilecomponents/icons/distribute-horizontal-x.svg102
-rw-r--r--qt-mobile/qml/mobilecomponents/icons/document-edit.svg93
-rw-r--r--qt-mobile/qml/mobilecomponents/icons/document-save.svg108
-rw-r--r--qt-mobile/qml/mobilecomponents/icons/go-next.svg76
-rw-r--r--qt-mobile/qml/mobilecomponents/icons/go-previous.svg127
-rw-r--r--qt-mobile/qml/mobilecomponents/icons/view-readermode.svg110
-rw-r--r--qt-mobile/qml/mobilecomponents/private/AbstractDrawer.qml47
-rw-r--r--qt-mobile/qml/mobilecomponents/private/ActionButton.qml192
-rw-r--r--qt-mobile/qml/mobilecomponents/private/ActionButtonArrow.qml56
-rw-r--r--qt-mobile/qml/mobilecomponents/private/PageStack.js243
-rw-r--r--qt-mobile/qml/mobilecomponents/private/qmldir3
-rw-r--r--qt-mobile/qml/mobilecomponents/qmldir21
-rwxr-xr-xscripts/build.sh49
34 files changed, 94 insertions, 3932 deletions
diff --git a/.gitignore b/.gitignore
index 4f21f1172..35af50390 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@ Subsurface.app
.DS_Store
!android/**/*.xml
build*
+qt-mobile/qml/mobilecomponents
diff --git a/packaging/android/build.sh b/packaging/android/build.sh
index 1069d93b1..51ea947aa 100644
--- a/packaging/android/build.sh
+++ b/packaging/android/build.sh
@@ -288,6 +288,48 @@ if [ "$SUBSURFACE_DESKTOP" = "ON" ] ; then
else
SUBSURFACE_MOBILE="ON"
fi
+
+if [ "$SUBSURFACE_MOBILE" = "ON" ] ; then
+ # now bring in the latest Plasma-mobile mobile components plus a couple of icons that we need
+ # first, get the latest from upstream
+ # yes, this is a bit overkill as we clone a lot of stuff for just a few files, but this way
+ # we stop having to manually merge our code with upstream all the time
+ # as we get closer to shipping a production version we'll likely check out specific tags
+ # or SHAs from upstream
+ if [ ! -d plasma-mobile ] ; then
+ git clone git://github.com/KDE/plasma-mobile
+ fi
+ pushd plasma-mobile
+ git pull
+ popd
+ if [ ! -d breeze-icons ] ; then
+ git clone git://anongit.kde.org/breeze-icons
+ fi
+ pushd breeze-icons
+ git pull
+ popd
+
+ # now copy the components and a couple of icons into plae
+ MC=$SUBSURFACE_SOURCE/qt-mobile/qml/mobilecomponents
+ PMMC=plasma-mobile/components/mobilecomponents
+ BREEZE=breeze-icons
+
+ rm -rf $MC
+ mkdir -p $MC/icons
+ cp -R $PMMC/qml/* $MC/
+ cp $PMMC/fallbacktheme/*qml $MC/
+
+ cp $BREEZE/icons/actions/24/dialog-cancel.svg $MC/icons
+ cp $BREEZE/icons/actions/24/distribute-horizontal-x.svg $MC/icons
+ cp $BREEZE/icons/actions/24/document-edit.svg $MC/icons
+ cp $BREEZE/icons/actions/24/document-save.svg $MC/icons
+ cp $BREEZE/icons/actions/24/go-next.svg $MC/icons
+ cp $BREEZE/icons/actions/24/go-previous.svg $MC/icons
+ cp $BREEZE/icons/actions/16/view-readermode.svg $MC/icons
+
+ echo org.kde.plasma.mobilecomponents synced from upstream
+fi
+
if [ ! -z "$SUBSURFACE_MOBILE" ] ; then
mkdir -p subsurface-mobile-build-$ARCH
cd subsurface-mobile-build-$ARCH
@@ -298,7 +340,7 @@ else
cd subsurface-build-$ARCH
fi
-# somehting in the qt-android-cmake-thingies mangles your path, so thats why we need to hard-code ant and pkg-config here.
+# something in the qt-android-cmake-thingies mangles your path, so thats why we need to hard-code ant and pkg-config here.
if [ $PLATFORM = Darwin ] ; then
ANT=/usr/local/bin/ant
FTDI=OFF
@@ -306,6 +348,7 @@ else
ANT=/usr/bin/ant
FTDI=ON
fi
+
PKGCONF=$(which pkg-config)
cmake $MOBILE_CMAKE \
-DQT_ANDROID_ANT=${ANT} \
diff --git a/qt-mobile/qml/mobile-resources.qrc b/qt-mobile/qml/mobile-resources.qrc
index b6393fc91..cde0d42cf 100644
--- a/qt-mobile/qml/mobile-resources.qrc
+++ b/qt-mobile/qml/mobile-resources.qrc
@@ -38,7 +38,6 @@
<file alias="org/kde/plasma/mobilecomponents/private/ActionButtonArrow.qml">mobilecomponents/private/ActionButtonArrow.qml</file>
<file alias="org/kde/plasma/mobilecomponents/private/AbstractDrawer.qml">mobilecomponents/private/AbstractDrawer.qml</file>
<file alias="org/kde/plasma/mobilecomponents/private/PageStack.js">mobilecomponents/private/PageStack.js</file>
- <file alias="org/kde/plasma/mobilecomponents/private/qmldir">mobilecomponents/private/qmldir</file>
<file alias="org/kde/plasma/mobilecomponents/icons/go-next.svg">mobilecomponents/icons/go-next.svg</file>
<file alias="org/kde/plasma/mobilecomponents/icons/go-previous.svg">mobilecomponents/icons/go-previous.svg</file>
<file alias="org/kde/plasma/mobilecomponents/icons/distribute-horizontal-x.svg">mobilecomponents/icons/distribute-horizontal-x.svg</file>
diff --git a/qt-mobile/qml/mobilecomponents/ActionGroup.qml b/qt-mobile/qml/mobilecomponents/ActionGroup.qml
deleted file mode 100644
index ba057f58f..000000000
--- a/qt-mobile/qml/mobilecomponents/ActionGroup.qml
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copycontext 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtQuick.Controls 1.3
-
-Action {
- id: root
- default property alias children: root.__children
- property list<Action> __children
-}
diff --git a/qt-mobile/qml/mobilecomponents/ApplicationWindow.qml b/qt-mobile/qml/mobilecomponents/ApplicationWindow.qml
deleted file mode 100644
index c57afb6da..000000000
--- a/qt-mobile/qml/mobilecomponents/ApplicationWindow.qml
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copycontext 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtQuick.Controls 1.3
-import "private"
-import org.kde.plasma.mobilecomponents 0.2
-
-/**
- * A window that provides some basic features needed for all apps
- *
- * It's usually used as a root QML component for the application.
- * It's based around the PageRow component, the application will be
- * about pages adding and removal.
- */
-ApplicationWindow {
- id: root
-
- /**
- * The first page that will be loaded when the application starts
- */
- property alias initialPage: __pageStack.initialPage
-
- /**
- * The stack used to allocate the pages and to manage the transitions
- * between them.
- * It's using a PageRow, while having the same API as PageStack,
- * it positions the pages as adjacent columns, with as many columns
- * as can fit in the screen. An handheld device would usually have a single
- * fullscreen column, a tablet device would have many tiled columns.
- */
- 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
- bottomMargin: Qt.inputMethod.visible ? Qt.inputMethod.keyboardRectangle.height : 0
- }
- focus: true
- Keys.onReleased: {
- if (event.key == Qt.Key_Back && stackView.depth > 1) {
- stackView.pop();
- event.accepted = true;
- }
- }
- }
-
- property AbstractDrawer globalDrawer
- property AbstractDrawer contextDrawer
-
- onGlobalDrawerChanged: {
- globalDrawer.parent = contentItem.parent;
- }
- onContextDrawerChanged: {
- contextDrawer.parent = contentItem.parent;
- }
-
- width: Units.gridUnit * 25
- height: Units.gridUnit * 30
-
- 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
- iconSource: "distribute-horizontal-x"
-
- visible: root.globalDrawer || root.contextDrawer
- }
-}
diff --git a/qt-mobile/qml/mobilecomponents/BasicListItem.qml b/qt-mobile/qml/mobilecomponents/BasicListItem.qml
deleted file mode 100644
index fe5b79ed6..000000000
--- a/qt-mobile/qml/mobilecomponents/BasicListItem.qml
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2010 Marco Martin <notmart@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
- */
-
-import QtQuick 2.1
-import QtQuick.Layouts 1.2
-import org.kde.plasma.mobilecomponents 0.2
-
-/**
- * An item delegate for the primitive ListView component.
- *
- * It's intended to make all listviews look coherent.
- *
- * @inherit QtQuick.Item
- */
-ListItem {
- id: listItem
-
- property string label
- property var icon
-
- RowLayout {
- height: implicitHeight + Units.smallSpacing * 2
- anchors {
- left: parent.left
- margins: Units.largeSpacing
- }
- Icon {
- Layout.minimumHeight: Units.iconSizes.smallMedium
- Layout.minimumWidth: height
- source: listItem.icon
- }
- Label {
- text: listItem.label
- }
- }
-}
diff --git a/qt-mobile/qml/mobilecomponents/ContextDrawer.qml b/qt-mobile/qml/mobilecomponents/ContextDrawer.qml
deleted file mode 100644
index 088399721..000000000
--- a/qt-mobile/qml/mobilecomponents/ContextDrawer.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtQuick.Layouts 1.2
-import QtQuick.Controls 1.0 as QtControls
-import org.kde.plasma.mobilecomponents 0.2
-
-OverlayDrawer {
- id: root
-
- 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: 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
- model: {
- if (typeof root.actions == "undefined") {
- return null;
- }
- if (root.actions.length == 0) {
- return null;
- } else {
- return root.actions[0].text !== undefined &&
- root.actions[0].trigger !== undefined ?
- root.actions :
- root.actions[0];
- }
- }
- topMargin: menu.height - menu.contentHeight
- header: Item {
- height: heading.height
- width: menu.width
- Heading {
- id: heading
- anchors {
- left: parent.left
- right: parent.right
- margins: Units.largeSpacing
- }
- elide: Text.ElideRight
- level: 2
- text: root.title
- }
- }
- delegate: BasicListItem {
- checked: modelData.checked
- icon: modelData.iconName
- label: model ? model.text : modelData.text
- enabled: model ? model.enabled : modelData.enabled
- opacity: enabled ? 1.0 : 0.6
- onClicked: {
- if (modelData && modelData.trigger !== undefined) {
- modelData.trigger();
- // assume the model is a list of QAction or Action
- } else if (menu.model.length > index) {
- menu.model[index].trigger();
- } 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
deleted file mode 100644
index afe304166..000000000
--- a/qt-mobile/qml/mobilecomponents/GlobalDrawer.qml
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import QtQuick.Layouts 1.2
-import QtGraphicalEffects 1.0
-import org.kde.plasma.mobilecomponents 0.2
-
-OverlayDrawer {
- id: root
- edge: Qt.LeftEdge
-
- default property alias content: mainContent.data
-
- property alias title: heading.text
- property alias titleIcon: headingIcon.source
- property alias bannerImageSource: bannerImage.source
- property list<Action> actions
-
- contentItem: ColumnLayout {
- id: mainColumn
- anchors.fill: parent
- spacing: 0
- implicitWidth: Units.gridUnit * 12
-
- Image {
- id: bannerImage
- Layout.fillWidth: true
-
- Layout.preferredWidth: title.implicitWidth
- Layout.preferredHeight: bannerImageSource != "" ? Math.max(title.implicitHeight, Math.floor(width / (sourceSize.width/sourceSize.height))) : title.implicitHeight
- Layout.minimumHeight: Math.max(headingIcon.height, heading.height) + Units.smallSpacing * 2
-
- fillMode: Image.PreserveAspectCrop
- asynchronous: true
-
- anchors {
- left: parent.left
- right: parent.right
- top: parent.top
- }
-
- LinearGradient {
- anchors {
- left: parent.left
- right: parent.right
- top: parent.top
- }
- visible: bannerImageSource != ""
- height: title.height * 1.3
- start: Qt.point(0, 0)
- end: Qt.point(0, height)
- gradient: Gradient {
- GradientStop {
- position: 0.0
- color: Qt.rgba(0, 0, 0, 0.8)
- }
- GradientStop {
- position: 1.0
- color: "transparent"
- }
- }
- }
-
- RowLayout {
- id: title
- anchors {
- left: parent.left
- top: parent.top
- margins: Units.smallSpacing * 2
- }
- Icon {
- id: headingIcon
- Layout.minimumWidth: Units.iconSizes.large
- Layout.minimumHeight: width
- }
- Heading {
- id: heading
- level: 1
- color: bannerImageSource != "" ? "white" : Theme.textColor
- }
- Item {
- height: 1
- Layout.minimumWidth: heading.height
- }
- }
- }
-
- Rectangle {
- color: Theme.textColor
- opacity: 0.2
- Layout.fillWidth: true
- Layout.minimumHeight: 1
- }
-
- StackView {
- id: pageRow
- Layout.fillWidth: true
- Layout.fillHeight: true
- initialItem: menuComponent
- }
-
- ColumnLayout {
- id: mainContent
- Layout.alignment: Qt.AlignHCenter
- Layout.minimumWidth: parent.width - Units.smallSpacing*2
- Layout.maximumWidth: Layout.minimumWidth
- Layout.fillWidth: false
- Layout.fillHeight: true
- visible: children.length > 0
- }
- Item {
- Layout.minimumWidth: Units.smallSpacing
- Layout.minimumHeight: Units.smallSpacing
- }
-
- Component {
- id: menuComponent
- ListView {
- id: optionMenu
- clip: true
-
- model: actions
- property int level: 0
-
- interactive: contentHeight > height
-
- footer: BasicListItem {
- visible: level > 0
- enabled: true
- icon: "go-previous"
- label: typeof i18n !== "undefined" ? i18n("Back") : "Back"
- onClicked: pageRow.pop()
- }
- delegate: BasicListItem {
- enabled: true
- checked: modelData.checked
- icon: modelData.iconName
- label: modelData.text
-
- Icon {
- anchors {
- top: parent.top
- bottom: parent.bottom
- right: parent.right
- }
- width: height
- source: "go-next"
- visible: modelData.children != undefined
- }
-
- onClicked: {
- if (modelData.children) {
- pageRow.push(menuComponent, {"model": modelData.children, "level": level + 1});
- } else {
- modelData.trigger();
- pageRow.pop(pageRow.initialPage);
- root.opened = false;
- }
- }
- }
- }
- }
- }
-}
-
diff --git a/qt-mobile/qml/mobilecomponents/Heading.qml b/qt-mobile/qml/mobilecomponents/Heading.qml
deleted file mode 100644
index db69645eb..000000000
--- a/qt-mobile/qml/mobilecomponents/Heading.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-* Copyright 2012 by Sebastian Kügler <sebas@kde.org>
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU Library General Public License as
-* published by the Free Software Foundation; either version 2, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Library General Public License for more details
-*
-* You should have received a copy of the GNU Library General Public
-* License along with this program; if not, write to the
-* Free Software Foundation, Inc.,
-* 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
-*/
-
-import QtQuick 2.0
-import org.kde.plasma.mobilecomponents 0.2
-
-/**
- * A heading label used for subsections of texts.
- *
- * The characteristics of the text will be automatically set according to the
- * plasma Theme. Use this components for section titles or headings in your UI,
- * for example page or section titles.
- *
- * Example usage:
- *
- * @code
- * import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
- * [...]
- * Column {
- * MobileComponents.Heading { text: "Apples in the sunlight"; level: 2 }
- * [...]
- * }
- * @endcode
- *
- * The most important property is "text", which applies to the text property of
- * Label. See PlasmaComponents Label and primitive QML Text element API for
- * additional properties, methods and signals.
- */
-Label {
- id: heading
-
- /**
- * The level determines how big the section header is display, values
- * between 1 (big) and 5 (small) are accepted
- */
- property int level: 1
-
- property int step: 2
-
- height: Math.round(paintedHeight * 1.2)
- font.pointSize: headerPointSize(level)
- font.weight: Font.Light
- wrapMode: Text.WordWrap
- opacity: 0.8
-
- function headerPointSize(l) {
- var n = Theme.defaultFont.pointSize;
- var s;
- if (l > 4) {
- s = n
- } else if (l < 2) {
- s = n + (5*step)
- } else {
- s = n + ((5-level)*2)
- }
- return s;
- }
-}
diff --git a/qt-mobile/qml/mobilecomponents/Icon.qml b/qt-mobile/qml/mobilecomponents/Icon.qml
deleted file mode 100644
index 150c181e6..000000000
--- a/qt-mobile/qml/mobilecomponents/Icon.qml
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.0
-import QtGraphicalEffects 1.0
-import org.kde.plasma.mobilecomponents 0.2
-
-Item {
- id: root
- property string source
- property alias smooth: image.smooth
- property bool active: false
- property bool valid: image.status == Image.Ready
-
- implicitWidth: image.source != "" ? Units.iconSizes.smallMedium : 0
- implicitHeight: image.source != "" ? Units.iconSizes.smallMedium : 0
-
- Image {
- id: image
- anchors.fill: parent
- source: root.source != "" ? (root.source.indexOf(".") === -1 ? "icons/" + root.source + ".svg" : root.source) : root.source
- sourceSize.width: root.width
- sourceSize.height: root.height
- }
- /* // FIXME: This causes black squares on some GLES drivers, notably on Adreno hardware
- GammaAdjust {
- anchors.fill: image
- source: image
- gamma: root.active ? 3.0 : 1
- }
- */
-}
diff --git a/qt-mobile/qml/mobilecomponents/IconGrid.qml b/qt-mobile/qml/mobilecomponents/IconGrid.qml
deleted file mode 100644
index 1a6acbc1d..000000000
--- a/qt-mobile/qml/mobilecomponents/IconGrid.qml
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- Copyright 2010 Marco Martin <notmart@gmail.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-import QtQuick 2.1
-import org.kde.plasma.core 2.0 as PlasmaCore
-import org.kde.plasma.mobilecomponents 0.2
-import org.kde.plasma.mobilecomponents.private 0.2
-
-Item {
- id: main
-
- property Component delegate
- property QtObject model
-
- property int pageSize: Math.floor(iconView.width / main.delegateWidth) * Math.floor(iconView.height / main.delegateHeight)
- property int delegateWidth: Units.iconSizes.huge + Units.gridUnit * 2
- property int delegateHeight: Units.iconSizes.huge + Units.gridUnit * 2
- property alias currentPage: iconView.currentIndex
- property int pagesCount: Math.ceil(model.count / pageSize)
- property int count: model.count
- property alias contentX: iconView.contentX
- clip: true
-
- function positionViewAtIndex(index)
- {
- iconView.positionViewAtIndex(index / pageSize, ListView.Beginning)
- }
-
- Timer {
- id: resizeTimer
- running: true
- interval: 100
- onTriggered: {
- main.pageSize = Math.floor(iconView.width / main.delegateWidth) * Math.floor(iconView.height / main.delegateHeight)
- if (iconView.currentItem) {
- iconView.currentItem.width = iconView.width
- iconView.currentItem.height = iconView.height
- }
- }
- }
-
- ListView {
- id: iconView
- objectName: "iconView"
- pressDelay: 200
- cacheBuffer: Units.gridUnit * 8
- highlightMoveDuration: Units.shortDuration
- anchors.fill: parent
- onWidthChanged: resizeTimer.restart()
- onHeightChanged: resizeTimer.restart()
-
- model: main.model ? Math.ceil(main.model.count/main.pageSize) : 0
- highlightRangeMode: ListView.StrictlyEnforceRange
- orientation: ListView.Horizontal
- snapMode: ListView.SnapOneItem
- boundsBehavior: Flickable.DragOverBounds
-
- signal clicked(string url)
-
- delegate: Component {
- Item {
- id: delegatePage
- //Explicitly *not* bind the properties for performance reasons
- Component.onCompleted: {
- width = iconView.width
- height = iconView.height
- //iconView.cacheBuffer = iconView.width
- }
-
- Flow {
- id: iconFlow
- width: iconRepeater.suggestedWidth
-
- anchors {
- horizontalCenter: parent.horizontalCenter
- top: parent.top
- bottom: parent.bottom
- }
- property int orientation: ListView.Horizontal
-
- PagedProxyModel {
- id: pagedProxyModel
- sourceModel: main.model
- currentPage: model.index
- pageSize: main.pageSize
- }
- Repeater {
- id: iconRepeater
- model: pagedProxyModel
- property int columns: Math.min(count, Math.floor(delegatePage.width / main.delegateWidth))
- property int suggestedWidth: main.delegateWidth * columns
- //property int suggestedHeight: main.delegateHeight*Math.floor(count/columns)
-
- delegate: main.delegate
- }
- }
- }
- }
- }
-
-
- Loader {
- id: scrollArea
- visible: main.model && Math.ceil(main.model.count/main.pageSize) > 1
- anchors {
- left: parent.left
- right: parent.right
- bottom: parent.bottom
- }
- height: Math.max(16, iconView.height - Math.floor(iconView.height / delegateHeight) * delegateHeight)
-
- property int pageCount: main.model ? Math.ceil(main.model.count/main.pageSize) : 0
-
- sourceComponent: pageCount > 1 ? ((pageCount * 20 > width) ? scrollDotComponent : dotsRow) : undefined
- function setViewIndex(index)
- {
- //animate only if near
- if (Math.abs(iconView.currentIndex - index) > 1) {
- iconView.positionViewAtIndex(index, ListView.Beginning)
- } else {
- iconView.currentIndex = index
- }
- }
- Component {
- id: scrollDotComponent
- MouseArea {
- anchors.fill: parent
- property int pendingIndex: 0
- Rectangle {
- id: barRectangle
- color: Theme.textColor
- height: 4
- radius: 2
- anchors {
- left: parent.left
- right: parent.right
- verticalCenter: parent.verticalCenter
- leftMargin: (parent.width / pageCount / 2)
- rightMargin: (parent.width / pageCount / 2)
- }
- }
- Rectangle {
- color: Theme.textColor
- height: 8
- width: height
- radius: 4
- anchors.verticalCenter: parent.verticalCenter
- x: parent.width / (pageCount / (iconView.currentIndex+1)) - (parent.width / pageCount / 2) - 4
- Behavior on x {
- NumberAnimation {
- duration: Units.shortDuration
- easing.type: Easing.InOutQuad
- }
- }
- }
- function setViewIndexFromMouse(x)
- {
- pendingIndex = Math.min(pageCount,
- Math.round(pageCount / (barRectangle.width / Math.max(x - barRectangle.x, 1))))
- viewPositionTimer.restart()
- }
- onPressed: setViewIndexFromMouse(mouse.x)
- onPositionChanged: setViewIndexFromMouse(mouse.x)
-
- Timer {
- id: viewPositionTimer
- interval: 200
- onTriggered: setViewIndex(pendingIndex)
- }
- }
- }
- Component {
- id: dotsRow
-
- Item {
- Row {
- anchors.centerIn: parent
- spacing: units.gridUnit
-
- Repeater {
- model: scrollArea.pageCount
-
-
- Rectangle {
- width: 6
- height: 6
- scale: iconView.currentIndex == index ? 1.5 : 1
- radius: 5
- smooth: true
- opacity: iconView.currentIndex == index ? 0.8: 0.4
- color: Theme.textColor
-
- Behavior on scale {
- NumberAnimation {
- duration: units.shortDuration
- easing.type: Easing.InOutQuad
- }
- }
- Behavior on opacity {
- NumberAnimation {
- duration: units.shortDuration
- easing.type: Easing.InOutQuad
- }
- }
-
- MouseArea {
- anchors {
- fill: parent
- margins: Units.gridUnit / 2
- }
-
- onClicked: {
- setViewIndex(index)
- }
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/qt-mobile/qml/mobilecomponents/Label.qml b/qt-mobile/qml/mobilecomponents/Label.qml
deleted file mode 100644
index bf27078b7..000000000
--- a/qt-mobile/qml/mobilecomponents/Label.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-* Copyright (C) 2011 by Marco Martin <mart@kde.org>
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU Library General Public License as
-* published by the Free Software Foundation; either version 2, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Library General Public License for more details
-*
-* You should have received a copy of the GNU Library General Public
-* License along with this program; if not, write to the
-* Free Software Foundation, Inc.,
-* 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
-*/
-
-import QtQuick 2.1
-import org.kde.plasma.mobilecomponents 0.2
-
-/**
- * This is a label which uses the plasma Theme.
- *
- * The characteristics of the text will be automatically set according to the
- * plasma Theme. If you need a more customized text item use the Text component
- * from QtQuick.
- *
- * You can use all elements of the QML Text component, in particular the "text"
- * property to define the label text.
- *
- * @inherit QtQuick.Text
- */
-Text {
- id: root
-
- height: Math.round(Math.max(paintedHeight, Units.gridUnit * 1.6))
- verticalAlignment: lineCount > 1 ? Text.AlignTop : Text.AlignVCenter
-
- activeFocusOnTab: false
- renderType: Text.NativeRendering
-
- font.capitalization: Theme.defaultFont.capitalization
- font.family: Theme.defaultFont.family
- font.italic: Theme.defaultFont.italic
- font.letterSpacing: Theme.defaultFont.letterSpacing
- font.pointSize: Theme.defaultFont.pointSize
- font.strikeout: Theme.defaultFont.strikeout
- font.underline: Theme.defaultFont.underline
- font.weight: Theme.defaultFont.weight
- font.wordSpacing: Theme.defaultFont.wordSpacing
- color: Theme.textColor
-
- opacity: enabled? 1 : 0.6
-
- Accessible.role: Accessible.StaticText
- Accessible.name: text
-}
diff --git a/qt-mobile/qml/mobilecomponents/ListItem.qml b/qt-mobile/qml/mobilecomponents/ListItem.qml
deleted file mode 100644
index 042ba2cbc..000000000
--- a/qt-mobile/qml/mobilecomponents/ListItem.qml
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright 2010 Marco Martin <notmart@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
- */
-
-import QtQuick 2.1
-import org.kde.plasma.mobilecomponents 0.2
-
-/**
- * An item delegate for the primitive ListView component.
- *
- * It's intended to make all listviews look coherent.
- *
- * @inherit QtQuick.Item
- */
-Item {
- id: listItem
- default property alias content: paddingItem.data
-
- /**
- * type:bool Holds if the item emits signals related to mouse interaction.
- *
- * The default value is false.
- */
- property alias enabled: itemMouse.enabled
- //item has been clicked or pressed+hold
-
- /**
- * This signal is emitted when there is a click.
- *
- * This is disabled by default, set enabled to true to use it.
- * @see enabled
- */
- signal clicked
-
-
- /**
- * The user pressed the item with the mouse and didn't release it for a
- * certain amount of time.
- *
- * This is disabled by default, set enabled to true to use it.
- * @see enabled
- */
- signal pressAndHold
-
- /**
- * If true makes the list item look as checked or pressed. It has to be set
- * from the code, it won't change by itself.
- */
- //plasma extension
- //always look pressed?
- property bool checked: false
-
- /**
- * If true the item will be a delegate for a section, so will look like a
- * "title" for the otems under it.
- */
- //is this to be used as section delegate?
- property bool sectionDelegate: false
-
- /**
- * True if the list item contains mouse
- */
- property alias containsMouse: itemMouse.containsMouse
-
- width: parent ? parent.width : childrenRect.width
- height: paddingItem.childrenRect.height + Units.smallSpacing*2
-
- property int implicitHeight: paddingItem.childrenRect.height + Units.smallSpacing*2
-
-
- MouseArea {
- id: itemMouse
- property bool changeBackgroundOnPress: !listItem.checked && !listItem.sectionDelegate
- anchors.fill: parent
- enabled: false
- hoverEnabled: true
-
- onClicked: listItem.clicked()
- onPressAndHold: listItem.pressAndHold()
-
- Rectangle {
- id : background
- color: listItem.checked || (itemMouse.pressed && itemMouse.changeBackgroundOnPress) ? Theme.highlightColor : Theme.viewBackgroundColor
-
- anchors.fill: parent
- visible: listItem.ListView.view ? listItem.ListView.view.highlight === null : true
- opacity: itemMouse.containsMouse && !itemMouse.pressed ? 0.5 : 1
- Behavior on color {
- ColorAnimation { duration: Units.longDuration }
- }
- Behavior on opacity { NumberAnimation { duration: Units.longDuration } }
- }
- Item {
- id: paddingItem
- anchors {
- fill: parent
- margins: Units.smallSpacing
- }
- }
- }
-
- Rectangle {
- color: Theme.textColor
- opacity: 0.2
- anchors {
- left: parent.left
- right: parent.right
- bottom: parent.bottom
- }
- height: 1
- }
-
- Accessible.role: Accessible.ListItem
-}
diff --git a/qt-mobile/qml/mobilecomponents/ListItemWithActions.qml b/qt-mobile/qml/mobilecomponents/ListItemWithActions.qml
deleted file mode 100644
index 5fd62319d..000000000
--- a/qt-mobile/qml/mobilecomponents/ListItemWithActions.qml
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * Copyright 2010 Marco Martin <notmart@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA.
- */
-
-import QtQuick 2.1
-import QtQuick.Layouts 1.2
-import QtQuick.Controls 1.0
-import org.kde.plasma.mobilecomponents 0.2
-import QtGraphicalEffects 1.0
-
-/**
- * An item delegate for the primitive ListView component.
- *
- * It's intended to make all listviews look coherent.
- *
- * @inherit QtQuick.Item
- */
-Item {
- id: listItem
- default property alias content: paddingItem.data
-
- /**
- * type:bool Holds if the item emits signals related to mouse interaction.
- *
- * The default value is false.
- */
- property alias enabled: itemMouse.enabled
- //item has been clicked or pressed+hold
-
- /**
- * This signal is emitted when there is a click.
- *
- * This is disabled by default, set enabled to true to use it.
- * @see enabled
- */
- signal clicked
-
- /**
- * The user pressed the item with the mouse and didn't release it for a
- * certain amount of time.
- *
- * This is disabled by default, set enabled to true to use it.
- * @see enabled
- */
- signal pressAndHold
-
- /**
- * If true makes the list item look as checked or pressed. It has to be set
- * from the code, it won't change by itself.
- */
- //plasma extension
- //always look pressed?
- property bool checked: false
-
- /**
- * If true the item will be a delegate for a section, so will look like a
- * "title" for the otems under it.
- */
- //is this to be used as section delegate?
- property bool sectionDelegate: false
-
- /**
- * True if the list item contains mouse
- */
- property alias containsMouse: itemMouse.containsMouse
-
- /**
- * Defines the actions for the page: at most 4 buttons will
- * contain the actions at the bottom of the page, if the main
- * item of the page is a Flickable or a ScrllArea, it will
- * control the visibility of the actions.
- */
- property alias actions: internalActions.data
-
- Item {
- id: internalActions
- }
-
- width: parent ? parent.width : childrenRect.width
- height: paddingItem.childrenRect.height + Units.smallSpacing * 2
-
- property int implicitHeight: paddingItem.childrenRect.height + Units.smallSpacing * 2
-
-
- Rectangle {
- id: shadowHolder
- color: Theme.backgroundColor
- x: itemMouse.x + itemMouse.width
- width: parent.width
- height: parent.height
- }
- 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
- }
- 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];
- }
- }
- delegate: Icon {
- Layout.fillHeight: true
- Layout.minimumWidth: height
- source: modelData.iconName
- MouseArea {
- anchors {
- fill: parent
- margins: -Units.smallSpacing
- }
- onClicked: {
- if (modelData && modelData.trigger !== undefined) {
- modelData.trigger();
- // assume the model is a list of QAction or Action
- } else if (toolbar.model.length > index) {
- toolbar.model[index].trigger();
- } else {
- console.log("Don't know how to trigger the action")
- }
- itemMouse.x = 0;
- }
- }
- }
- }
- }
-
-
- MouseArea {
- id: itemMouse
- property bool changeBackgroundOnPress: !listItem.checked && !listItem.sectionDelegate
- width: parent.width
- height: parent.height
- enabled: false
- hoverEnabled: true
-
- onClicked: listItem.clicked()
- onPressAndHold: listItem.pressAndHold()
-
- Behavior on x {
- NumberAnimation {
- duration: Units.longDuration
- easing.type: Easing.InOutQuad
- }
- }
-
- Rectangle {
- id : item
- color: listItem.checked || (itemMouse.pressed && itemMouse.changeBackgroundOnPress) ? Theme.highlightColor : Theme.viewBackgroundColor
- anchors.fill: parent
-
- visible: listItem.ListView.view ? listItem.ListView.view.highlight === null : true
- Behavior on color {
- ColorAnimation { duration: Units.longDuration }
- }
-
- Item {
- id: paddingItem
- anchors {
- fill: parent
- margins: Units.smallSpacing
- }
- }
-
- 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
- anchors {
- right: parent.right
- verticalCenter: parent.verticalCenter
- rightMargin: y
- }
- drag {
- 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: {
- 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;
- }
- }
- onClicked: {
- if (itemMouse.x < -itemMouse.width/2) {
- itemMouse.x = 0;
- } else {
- itemMouse.x = -itemMouse.width + width * 2
- }
- }
- Icon {
- anchors.fill: parent
- source: "application-menu"
- }
- }
- }
- }
-
-
- Rectangle {
- color: Theme.textColor
- opacity: 0.2
- anchors {
- left: parent.left
- right: parent.right
- bottom: parent.bottom
- }
- height: 1
- }
-
- Accessible.role: Accessible.ListItem
-}
diff --git a/qt-mobile/qml/mobilecomponents/OverlayDrawer.qml b/qt-mobile/qml/mobilecomponents/OverlayDrawer.qml
deleted file mode 100644
index 061a9f490..000000000
--- a/qt-mobile/qml/mobilecomponents/OverlayDrawer.qml
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- * Copyright 2012 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtGraphicalEffects 1.0
-import org.kde.plasma.mobilecomponents 0.2
-import "private"
-
-/**Documented API
-
-Imports:
- QtQuick 2.1
-
-Description:
- Overlay Drawers are used to expose additional UI elements needed for
- small secondary tasks for which the main UI elements are not needed.
- For example in Okular Active, an Overlay Drawer is used to display
- thumbnails of all pages within a document along with a search field.
- This is used for the distinct task of navigating to another page.
-
-Properties:
- bool opened:
- If true the drawer is open showing the contents of the "drawer"
- component.
-
- Item page:
- It's the default property. it's the main content of the drawer page,
- the part that is always shown
-
- Item contentItem:
- It's the part that can be pulled in and out, will act as a sidebar.
-**/
-AbstractDrawer {
- id: root
- anchors.fill: parent
- z: 9999
-
- default property alias page: mainPage.data
- property Item contentItem
- property alias opened: mainFlickable.open
- property int edge: Qt.LeftEdge
- property real position: 0
- onPositionChanged: {
- 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 () {
- 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 () {
- 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 {
- id: mainPage
- anchors.fill: parent
- onChildrenChanged: mainPage.children[0].anchors.fill = mainPage
- }
-
- Rectangle {
- anchors.fill: parent
- color: "black"
- 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.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 * 2
- height: Units.smallSpacing * 2
- property int startMouseX
- property real oldMouseX
- property int startMouseY
- property real oldMouseY
- property bool startDragging: false
-
- onPressed: {
- if (drawerPage.children.length == 0) {
- mouse.accepted = false;
- return;
- }
-
- speedSampler.restart();
- mouse.accepted = true;
- oldMouseX = startMouseX = mouse.x;
- oldMouseY = startMouseY = mouse.y;
- startDragging = false;
- }
-
- onPositionChanged: {
- if (!root.contentItem) {
- mouse.accepted = false;
- return;
- }
-
- if (Math.abs(mouse.x - startMouseX) > root.width / 5 ||
- Math.abs(mouse.y - startMouseY) > root.height / 5) {
- startDragging = true;
- }
- if (startDragging) {
- 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: {
- speedSampler.running = false;
- if (speedSampler.speed != 0) {
- if (root.edge == Qt.RightEdge || root.edge == Qt.LeftEdge) {
- mainFlickable.flick(speedSampler.speed, 0);
- } else {
- mainFlickable.flick(0, speedSampler.speed);
- }
- } else {
- if (mainFlickable.internalPosition > 0.5) {
- root.open();
- } else {
- root.close();
- }
- }
- }
- }
-
- 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 {
- speed = (mainFlickable.contentY - oldContentY) * 10;
- oldContentY = mainFlickable.contentY;
- }
- }
- 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 {
- speed = (oldContentY - mainFlickable.contentY) * 10;
- }
- }
- }
- }
-
- 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
-
- Flickable {
- id: mainFlickable
- property bool open
- anchors.fill: parent
-
- onOpenChanged: {
- if (open) {
- root.open();
- } else {
- root.close();
- }
- }
- 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);
- }
- }
- onInternalPositionChanged: {
- root.position = internalPosition;
- }
-
- onFlickingChanged: {
- if (!flicking) {
- if (internalPosition > 0.5) {
- root.open();
- } else {
- root.close();
- }
- }
- }
- onMovingChanged: {
- if (!moving) {
- flickingChanged();
- }
- }
-
- 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;
- }
- }
- onHeightChanged: {
- if (root.edge == Qt.TopEdge) {
- mainFlickable.contentY = drawerPage.Height;
- }
- }
-
- 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)
- }
-
- 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
deleted file mode 100644
index 9220357e6..000000000
--- a/qt-mobile/qml/mobilecomponents/Page.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtQuick.Layouts 1.2
-import org.kde.plasma.mobilecomponents 0.2
-import "private"
-
-Rectangle {
- id: root
-
- /**
- * type:PageStack
- * The page stack that this page is owned by.
- */
- property Item pageStack
-
- /**
- * Defines the toolbar contents for the page. If the page stack is set up
- * using a toolbar instance, it automatically shows the currently active
- * page's toolbar contents in the toolbar.
- *
- * The default value is null resulting in the page's toolbar to be
- * invisible when the page is active.
- */
- property Item tools: null
-
- /**
- * Defines the contextual actions for the page:
- * an easy way to assign actions in the right sliding panel
- */
- property list<QtObject> contextualActions
-
-
- Layout.fillWidth: true
- color: "transparent"
-}
diff --git a/qt-mobile/qml/mobilecomponents/PageRow.qml b/qt-mobile/qml/mobilecomponents/PageRow.qml
deleted file mode 100644
index b69b39c8f..000000000
--- a/qt-mobile/qml/mobilecomponents/PageRow.qml
+++ /dev/null
@@ -1,513 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Marco Martin <mart@kde.org>
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Components project.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQuick.Controls 1.0
-import QtQuick.Layouts 1.2
-import org.kde.plasma.mobilecomponents 0.2
-
-import "private/PageStack.js" as Engine
-
-Item {
- id: actualRoot
-
- width: parent ? parent.width : 0
- height: parent ? parent.height : 0
-
-
- property int depth: Engine.getDepth()
- property Item currentPage: null
- property Item lastVisiblePage: currentPage
- property ToolBar toolBar
- property variant initialPage
- //A column is wide enough for 30 characters
- property int columnWidth: Math.round(parent.width/(Units.gridUnit*30)) > 0 ? parent.width/Math.round(parent.width/(Units.gridUnit*30)) : width
- property alias clip: scrollArea.clip
-
- // Indicates whether there is an ongoing page transition.
- property bool busy: internal.ongoingTransitionCount > 0
-
- // Pushes a page on the stack.
- // The page can be defined as a component, item or string.
- // If an item is used then the page will get re-parented.
- // If a string is used then it is interpreted as a url that is used to load a page component.
- //
- // The page can also be given as an array of pages. In this case all those pages will be pushed
- // onto the stack. The items in the stack can be components, items or strings just like for single
- // pages. Additionally an object can be used, which specifies a page and an optional properties
- // property. This can be used to push multiple pages while still giving each of them properties.
- // When an array is used the transition animation will only be to the last page.
- //
- // The properties argument is optional and allows defining a map of properties to set on the page.
- // If the immediate argument is true then no transition animation is performed.
- // Returns the page instance.
- function push(page, properties, immediate)
- {
- pop(lastVisiblePage, true);
- scrollAnimation.running = false;
- var item = Engine.push(page, properties, false, immediate)
- scrollToLevel(depth)
- return item
- }
-
- // Pops a page off the stack.
- // If page is specified then the stack is unwound to that page, to unwind to the first page specify
- // page as null. If the immediate argument is true then no transition animation is performed.
- // Returns the page instance that was popped off the stack.
- function pop(page, immediate)
- {
- scrollToLevel(depth-1);
- return Engine.pop(page, immediate);
- }
-
- // Replaces a page on the stack.
- // See push() for details.
- function replace(page, properties, immediate)
- {
- pop(lastVisiblePage, true);
- scrollAnimation.running = false;
- var item = Engine.push(page, properties, true, immediate);
- scrollToLevel(depth)
- return item
- }
-
- // Clears the page stack.
- function clear()
- {
- return Engine.clear();
- }
-
- // Iterates through all pages (top to bottom) and invokes the specified function.
- // If the specified function returns true the search stops and the find function
- // returns the page that the iteration stopped at. If the search doesn't result
- // in any page being found then null is returned.
- function find(func)
- {
- return Engine.find(func);
- }
-
- // Scroll the view to have the page of the given level as first item
- function scrollToLevel(level)
- {
- if (level < 0 || level > depth || root.width < width) {
- return
- }
-
- var firstLevel = Math.max(0, level - mainFlickable.width/columnWidth + 1);
- scrollAnimation.to = Math.max(0, Math.min(Math.max(0, columnWidth * (firstLevel - 1)), mainFlickable.contentWidth));
- scrollAnimation.running = true;
- }
-
- SequentialAnimation {
- id: scrollAnimation
- property alias to: actualScrollAnimation.to
- NumberAnimation {
- id: actualScrollAnimation
- target: mainFlickable
- properties: "contentX"
- duration: internal.transitionDuration
- easing.type: Easing.InOutQuad
- }
- ScriptAction {
- script: {
- //At startup sometimes the contentX is NaN for an instant
- if (isNaN(mainFlickable.contentX)) {
- return;
- }
-
- actualRoot.lastVisiblePage = root.children[Math.floor((mainFlickable.contentX + mainFlickable.width - 1)/columnWidth)].page;
- if (!actualRoot.lastVisiblePage) {
- actualRoot.lastVisiblePage = actualRoot.currentPage;
- }
- }
- }
- }
-
- // Called when the page stack visibility changes.
- onVisibleChanged: {
- if (currentPage) {
- if (visible)
- currentPage.visible = currentPage.parent.visible = true;
- }
- }
-
- onInitialPageChanged: {
- if (!internal.completed) {
- return
- }
-
- if (initialPage) {
- if (depth == 0) {
- push(initialPage, null, true)
- } else if (depth == 1) {
- replace(initialPage, null, true)
- } else {
- console.log("Cannot update PageStack.initialPage")
- }
- }
- }
-
- onWidthChanged: {
- var firstLevel = Math.max(0, depth - mainFlickable.width/columnWidth + 1);
- mainFlickable.contentX = Math.max(0, Math.min(Math.max(0, columnWidth * (firstLevel - 1)), mainFlickable.contentWidth));
- }
- Component.onCompleted: {
- internal.completed = true
- if (initialPage && depth == 0)
- push(initialPage, null, true)
- }
-
- QtObject {
- id: internal
-
- // The number of ongoing transitions.
- property int ongoingTransitionCount: 0
-
- //FIXME: there should be a way to access to theh without storing it in an ugly way
- property bool completed: false
-
- // Duration of transition animation (in ms)
- property int transitionDuration: Units.longDuration
- }
-
- ScrollView {
- id: scrollArea
- anchors.fill: parent
- Flickable {
- id: mainFlickable
- anchors.fill: parent
- interactive: root.width > width
- boundsBehavior: Flickable.StopAtBounds
- contentWidth: root.width
- contentHeight: height
- Row {
- id: root
- spacing: -Units.gridUnit * 8
- width: Math.max((depth-1+children[children.length-1].takenColumns) * columnWidth, childrenRect.width - Units.gridUnit * 8)
-
- height: parent.height
- Behavior on width {
- NumberAnimation {
- duration: internal.transitionDuration
- easing.type: Easing.InOutQuad
- }
- }
- }
- onMovementEnded: {
- scrollToLevel(Math.round(contentX/columnWidth)+1)
- }
- onFlickEnded: {
- movementEnded();
- }
- }
- }
-
- // Component for page containers.
- Component {
- id: containerComponent
-
- Item {
- id: container
-
- implicitWidth: actualContainer.width + Units.gridUnit * 8
- width: implicitWidth
- height: parent ? parent.height : 0
-
- x: 0
-
- // The actual parent of page: page will anchor to that
- property Item pageParent: actualContainer
-
- property int pageDepth: 0
- Component.onCompleted: {
- pageDepth = Engine.getDepth() + 1
- container.z = -Engine.getDepth()
- }
-
- // The states correspond to the different possible positions of the container.
- state: "Hidden"
-
- // The page held by this container.
- property Item page: null
-
- // The owner of the page.
- property Item owner: null
-
- // The width of the longer stack dimension
- property int stackWidth: Math.max(actualRoot.width, actualRoot.height)
-
-
- // Flag that indicates the container should be cleaned up after the transition has ended.
- property bool cleanupAfterTransition: false
-
- // Flag that indicates if page transition animation is running
- property bool transitionAnimationRunning: false
-
- // State to be set after previous state change animation has finished
- property string pendingState: "none"
-
- //how many columns take the page?
- property alias takenColumns: actualContainer.takenColumns
-
- // Ensures that transition finish actions are executed
- // in case the object is destroyed before reaching the
- // end state of an ongoing transition
- Component.onDestruction: {
- if (transitionAnimationRunning)
- transitionEnded();
- }
-
- Item {
- id: actualContainer
-
- anchors {
- top: parent.top
- bottom: parent.bottom
- right: parent.right
- rightMargin: Units.gridUnit * 8
- }
-
- property int takenColumns: {
- if (container.page && container.page.Layout && container.page.Layout.fillWidth) {
- return Math.max(1, Math.round(actualRoot.width/columnWidth)-(container.x > 0 ? 1: 0));
- } else {
- return Math.max(1, Math.round(container.page ? container.page.implicitWidth/columnWidth : 1));
- }
- }
-
- width: (container.pageDepth >= actualRoot.depth ? Math.min(actualRoot.width, takenColumns*columnWidth) : columnWidth)
- }
-
- Rectangle {
- anchors {
- top: parent.top
- bottom: parent.bottom
- right: actualContainer.right
- }
- width: 1
- color: Theme.textColor
- opacity: 0.3
- visible: container.pageDepth < actualRoot.depth
- }
-
- // Sets pending state as current if state change is delayed
- onTransitionAnimationRunningChanged: {
- if (!transitionAnimationRunning && pendingState != "none") {
- state = pendingState;
- pendingState = "none";
- }
- }
-
- // Handles state change depening on transition animation status
- function setState(newState)
- {
- if (transitionAnimationRunning)
- pendingState = newState;
- else
- state = newState;
- }
-
- // Performs a push enter transition.
- function pushEnter(immediate, orientationChanges)
- {
- if (!immediate) {
- setState("Right");
- }
- setState("");
- page.visible = true;
- }
-
- // Performs a push exit transition.
- function pushExit(replace, immediate, orientationChanges)
- {
- if (replace) {
- setState(immediate ? "Hidden" : "Left");
- }
-
- if (replace) {
- if (immediate)
- cleanup();
- else
- cleanupAfterTransition = true;
- }
- }
-
- // Performs a pop enter transition.
- function popEnter(immediate, orientationChanges)
- {
- setState("");
- page.visible = true;
- }
-
- // Performs a pop exit transition.
- function popExit(immediate, orientationChanges)
- {
- setState(immediate ? "Hidden" : "Left");
-
- if (immediate)
- cleanup();
- else
- cleanupAfterTransition = true;
- }
-
- // Called when a transition has started.
- function transitionStarted()
- {
- container.clip = true
- transitionAnimationRunning = true;
- internal.ongoingTransitionCount++;
- }
-
- // Called when a transition has ended.
- function transitionEnded()
- {
- container.clip = false
- if (state != "")
- state = "Hidden";
-
- internal.ongoingTransitionCount--;
- transitionAnimationRunning = false;
-
- if (cleanupAfterTransition) {
- cleanup();
- }
- }
-
- states: [
- // Explicit properties for default state.
- State {
- name: ""
- PropertyChanges { target: container; visible: true; opacity: 1 }
- PropertyChanges { target: container; width: container.implicitWidth}
- },
- // Start state for pop entry, end state for push exit.
- State {
- name: "Left"
- PropertyChanges { target: container; opacity: 0 }
- PropertyChanges { target: container; width: Units.gridUnit * 8}
- },
- // Start state for push entry, end state for pop exit.
- State {
- name: "Right"
- PropertyChanges { target: container; opacity: 0 }
- PropertyChanges { target: container; width: Units.gridUnit * 8}
- },
- // Inactive state.
- State {
- name: "Hidden"
- PropertyChanges { target: container; visible: false }
- PropertyChanges { target: container; width: container.implicitWidth}
- }
- ]
-
- transitions: [
- // Push exit transition
- Transition {
- from: ""; to: "Left"
- SequentialAnimation {
- ScriptAction { script: transitionStarted() }
- ParallelAnimation {
- PropertyAnimation { properties: "width"; easing.type: Easing.InQuad; duration: internal.transitionDuration }
- PropertyAnimation { properties: "opacity"; easing.type: Easing.InQuad; duration: internal.transitionDuration }
- }
- ScriptAction { script: transitionEnded() }
- }
- },
- // Pop entry transition
- Transition {
- from: "Left"; to: ""
- SequentialAnimation {
- ScriptAction { script: transitionStarted() }
- ParallelAnimation {
- PropertyAnimation { properties: "width"; easing.type: Easing.OutQuad; duration: internal.transitionDuration }
- PropertyAnimation { properties: "opacity"; easing.type: Easing.InQuad; duration: internal.transitionDuration }
- }
- ScriptAction { script: transitionEnded() }
- }
- },
- // Pop exit transition
- Transition {
- from: ""; to: "Right"
- SequentialAnimation {
- ScriptAction { script: transitionStarted() }
- ParallelAnimation {
- PropertyAnimation { properties: "width"; easing.type: Easing.InQuad; duration: internal.transitionDuration }
- PropertyAnimation { properties: "opacity"; easing.type: Easing.InQuad; duration: internal.transitionDuration }
- }
- // Workaround for transition animation bug causing ghost view with page pop transition animation
- // TODO: Root cause still unknown
- PropertyAnimation {}
- ScriptAction { script: transitionEnded() }
- }
- },
- // Push entry transition
- Transition {
- from: "Right"; to: ""
- SequentialAnimation {
- ScriptAction { script: transitionStarted() }
- ParallelAnimation {
- PropertyAnimation { properties: "width"; easing.type: Easing.OutQuad; duration: internal.transitionDuration }
- PropertyAnimation { properties: "opacity"; easing.type: Easing.InQuad; duration: internal.transitionDuration }
- }
- ScriptAction { script: transitionEnded() }
- }
- }
- ]
-
- // Cleans up the container and then destroys it.
- function cleanup()
- {
- if (page != null) {
- if (owner != container) {
- // container is not the owner of the page - re-parent back to original owner
- page.visible = false;
- page.anchors.fill = undefined
- page.parent = owner;
- }
- }
- container.parent = null;
- container.visible = false;
- destroy();
- }
- }
- }
-}
diff --git a/qt-mobile/qml/mobilecomponents/SplitDrawer.qml b/qt-mobile/qml/mobilecomponents/SplitDrawer.qml
deleted file mode 100644
index 813eae10c..000000000
--- a/qt-mobile/qml/mobilecomponents/SplitDrawer.qml
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright 2012 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtGraphicalEffects 1.0
-import org.kde.plasma.mobilecomponents 0.2
-import "private"
-
-/**Documented API
-Inherits:
- Item
-
-Imports:
- QtQuick 2.1
-
-Description:
- Split Drawers are used to expose additional UI elements which are optional and can be used in conjunction with the main UI elements. For example the Resource Browser uses a Split Drawer to select different kinds of filters for the main view.
-
-Properties:
- bool open:
- If true the drawer is open showing the contents of the "drawer" component.
-
- Item page:
- It's the default property. it's the main content of the drawer page, the part that is always shown
-
- Item drawer:
- It's the part that can be pulled in and out, will act as a sidebar.
-
- int visibleDrawerWidth: the width of the visible portion of the drawer: it updates while dragging or animating
-**/
-AbstractDrawer {
- id: root
- anchors {
- fill: parent
- }
- visible: true
-
- default property alias page: mainPage.data
- property Item contentItem
- property alias opened: sidebar.open
- property int visibleDrawerWidth: browserFrame.x
-
- Component.onCompleted: {
- mainPage.width = browserFrame.width
- }
-
- onContentItemChanged: contentItem.parent = drawerPage
- MouseArea {
- id: mouseEventListener
- z: 200
- drag.filterChildren: true
- //drag.target: browserFrame
- property int startMouseX
- property int oldMouseX
- property int startBrowserFrameX
- property bool toggle: false
- property string startState
-
- anchors.fill: parent
-
- onPressed: {
- if (drawerPage.children.length == 0 || (browserFrame.state == "Closed" && mouse.x > Units.gridUnit) ||
- mouse.x < browserFrame.x) {
- mouse.accepted = false;
- return;
- }
-
- toggle = true;
- startBrowserFrameX = browserFrame.x;
- oldMouseX = startMouseX = mouse.x;
- startState = browserFrame.state;
- browserFrame.state = "Dragging";
- browserFrame.x = startBrowserFrameX;
- }
-
- onPositionChanged: {
- browserFrame.x = Math.max(0, browserFrame.x + mouse.x - oldMouseX);
- oldMouseX = mouse.x;
- if (Math.abs(mouse.x - startMouseX) > Units.gridUnit * 2) {
- toggle = false;
- }
- }
-
- onReleased: {
- if (toggle) {
- browserFrame.state = startState == "Open" ? "Closed" : "Open"
- } else if (browserFrame.x < sidebar.width / 2) {
- browserFrame.state = "Closed";
- } else {
- browserFrame.state = "Open";
- }
- }
- onClicked: root.clicked()
- }
-
- Rectangle {
- id: browserFrame
- z: 100
- color: Theme.backgroundColor
- state: "Closed"
- onStateChanged: sidebar.open = (state != "Closed")
-
- anchors {
- top: parent.top
- bottom: parent.bottom
- }
- width: root.width;
-
- Item {
- id: mainPage
- onChildrenChanged: mainPage.children[0].anchors.fill = mainPage
-
- anchors.fill: parent
- }
-
- Rectangle {
- anchors.fill: parent
- color: "black"
- opacity: Math.min(0.4, 0.4 * (browserFrame.x / sidebar.width))
- }
- LinearGradient {
- width: Units.gridUnit/2
- anchors {
- right: parent.left
- top: parent.top
- bottom: parent.bottom
- rightMargin: -1
- }
- start: Qt.point(0, 0)
- end: Qt.point(Units.gridUnit/2, 0)
- gradient: Gradient {
- GradientStop {
- position: 0.0
- color: "transparent"
- }
- GradientStop {
- position: 0.7
- color: Qt.rgba(0, 0, 0, 0.15)
- }
- GradientStop {
- position: 1.0
- color: Qt.rgba(0, 0, 0, 0.3)
- }
- }
- }
-
- states: [
- State {
- name: "Open"
- PropertyChanges {
- target: browserFrame
- x: sidebar.width
- }
-
- },
- State {
- name: "Dragging"
- PropertyChanges {
- target: browserFrame
- x: mouseEventListener.startBrowserFrameX
- }
- },
- State {
- name: "Closed"
- PropertyChanges {
- target: browserFrame
- x: 0
- }
- }
- ]
-
- transitions: [
- Transition {
- //Exclude Dragging
- to: "Open,Closed,Hidden"
- NumberAnimation {
- properties: "x"
- duration: Units.longDuration
- easing.type: Easing.InOutQuad
- }
- }
- ]
- }
-
-
- Item {
- id: sidebar
-
- property bool open: false
- onOpenChanged: {
- if (drawerPage.children.length == 0) {
- return;
- }
-
- if (open) {
- browserFrame.state = "Open";
- } else {
- browserFrame.state = "Closed";
- }
- }
-
- width: Math.min(parent.width/4*3, Math.max(root.contentItem ? root.contentItem.implicitWidth : 0, parent.width/4))
-
- anchors {
- left: parent.left
- top: parent.top
- bottom: parent.bottom
- }
-
- Item {
- id: drawerPage
- anchors.fill: parent
- clip: false
- onChildrenChanged: drawerPage.children[0].anchors.fill = drawerPage
- }
- }
-}
-
diff --git a/qt-mobile/qml/mobilecomponents/Theme.qml b/qt-mobile/qml/mobilecomponents/Theme.qml
deleted file mode 100644
index 402caedb6..000000000
--- a/qt-mobile/qml/mobilecomponents/Theme.qml
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-
-pragma Singleton
-
-/*!
- \qmltype Theme
- \inqmlmodule Material 0.1
-
- \brief Provides access to standard colors that follow the Material Design specification.
-
- See \l {http://www.google.com/design/spec/style/color.html#color-ui-color-application} for
- details about choosing a color scheme for your application.
- */
-QtObject {
- id: theme
-
- property color textColor: Qt.rgba(0,0,0, 0.54)
-
- property color highlightColor: "#2196F3"
- property color backgroundColor: "#eff0f1"
- property color linkColor: "#2196F3"
- property color visitedLinkColor: "#2196F3"
-
- property color buttonTextColor: Qt.rgba(0,0,0, 0.54)
- property color buttonBackgroundColor: "#eff0f1"
- property color buttonHoverColor: "#2196F3"
- property color buttonFocusColor: "#2196F3"
-
- property color viewTextColor: Qt.rgba(0,0,0, 0.54)
- property color viewBackgroundColor: "#fcfcfc"
- property color viewHoverColor: "#2196F3"
- property color viewFocusColor: "#2196F3"
-
- property color complementaryTextColor: "#f3f3f3"
- property color complementaryBackgroundColor: Qt.rgba(0,0,0, 0.54)
- property color complementaryHoverColor: "#2196F3"
- property color complementaryFocusColor: "#2196F3"
-
- property font defaultFont: fontMetrics.font
-
- property variant fontMetrics: TextMetrics {}
-
-}
diff --git a/qt-mobile/qml/mobilecomponents/Units.qml b/qt-mobile/qml/mobilecomponents/Units.qml
deleted file mode 100644
index 8b5032a71..000000000
--- a/qt-mobile/qml/mobilecomponents/Units.qml
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.4
-import QtQuick.Window 2.2
-
-pragma Singleton
-
-
-QtObject {
- id: units
-
- /**
- * The fundamental unit of space that should be used for sizes, expressed in pixels.
- * Given the screen has an accurate DPI settings, it corresponds to a width of
- * the capital letter M
- */
- property int gridUnit: fontMetrics.height
-
- /**
- * units.iconSizes provides access to platform-dependent icon sizing
- *
- * The icon sizes provided are normalized for different DPI, so icons
- * will scale depending on the DPI.
- *
- * Icon sizes from KIconLoader, adjusted to devicePixelRatio:
- * * small
- * * smallMedium
- * * medium
- * * large
- * * huge
- * * enormous
- *
- * Not devicePixelRation-adjusted::
- * * desktop
- */
- property QtObject iconSizes: QtObject {
- property int small: 16 * devicePixelRatio
- property int smallMedium: 22 * devicePixelRatio
- property int medium: 32 * devicePixelRatio
- property int large: 48 * devicePixelRatio
- property int huge: 64 * devicePixelRatio
- property int enormous: 128 * devicePixelRatio
- }
-
- /**
- * units.smallSpacing is the amount of spacing that should be used around smaller UI elements,
- * for example as spacing in Columns. Internally, this size depends on the size of
- * the default font as rendered on the screen, so it takes user-configured font size and DPI
- * into account.
- */
- property int smallSpacing: gridUnit/4
-
- /**
- * units.largeSpacing is the amount of spacing that should be used inside bigger UI elements,
- * for example between an icon and the corresponding text. Internally, this size depends on
- * the size of the default font as rendered on the screen, so it takes user-configured font
- * size and DPI into account.
- */
- property int largeSpacing: gridUnit
-
- /**
- * The ratio between physical and device-independent pixels. This value does not depend on the \
- * size of the configured font. If you want to take font sizes into account when scaling elements,
- * use theme.mSize(theme.defaultFont), units.smallSpacing and units.largeSpacing.
- * The devicePixelRatio follows the definition of "device independent pixel" by Microsoft.
- */
- property real devicePixelRatio: fontMetrics.height / fontMetrics.font.pointSize
-
- /**
- * units.longDuration should be used for longer, screen-covering animations, for opening and
- * closing of dialogs and other "not too small" animations
- */
- property int longDuration: 250
-
- /**
- * units.shortDuration should be used for short animations, such as accentuating a UI event,
- * hover events, etc..
- */
- property int shortDuration: 150
-
- property variant fontMetrics: TextMetrics {
- text: "M"
- }
-}
diff --git a/qt-mobile/qml/mobilecomponents/icons/dialog-cancel.svg b/qt-mobile/qml/mobilecomponents/icons/dialog-cancel.svg
deleted file mode 100644
index a2b022a9d..000000000
--- a/qt-mobile/qml/mobilecomponents/icons/dialog-cancel.svg
+++ /dev/null
@@ -1,122 +0,0 @@
-<?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="dialog-cancel.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>
- <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 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="perspective4090"/>
- <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>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4534">
- <rect ry="15.999986" y="8.0000038" x="8.0000114" height="31.999971" width="31.999989" id="rect4536" style="fill:url(#linearGradient4538);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4584">
- <rect ry="15.999986" y="507.798" x="392.57144" height="31.999971" width="31.999989" id="rect4586" style="fill:url(#linearGradient4588);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4550">
- <rect ry="15.999986" y="507.798" x="392.57144" height="31.999971" width="31.999989" id="rect4552" style="fill:url(#linearGradient4554);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4568">
- <rect ry="15.999986" y="507.798" x="392.57144" height="31.999971" width="31.999989" id="rect4570" style="fill:url(#linearGradient4572);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4528">
- <rect ry="15.999986" y="8.0000038" x="8.0000114" height="31.999971" width="31.999989" id="rect4530" style="fill:url(#linearGradient4532);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4578">
- <rect ry="15.999986" y="507.798" x="392.57144" height="31.999971" width="31.999989" id="rect4580" style="fill:url(#linearGradient4582);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4562">
- <rect ry="15.999986" y="507.798" x="392.57144" height="31.999971" width="31.999989" id="rect4564" style="fill:url(#linearGradient4566);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4544">
- <rect ry="15.999986" y="507.798" x="392.57144" height="31.999971" width="31.999989" id="rect4546" style="fill:url(#linearGradient4548);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4390">
- <rect ry="15.999986" y="8.0000038" x="8.0000114" height="31.999971" width="31.999989" id="rect4392" style="fill:url(#linearGradient4532);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4407">
- <rect ry="15.999986" y="507.798" x="392.57144" height="31.999971" width="31.999989" id="rect4409" style="fill:url(#linearGradient4582);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4424">
- <rect ry="15.999986" y="507.798" x="392.57144" height="31.999971" width="31.999989" id="rect4426" style="fill:url(#linearGradient4566);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4441">
- <rect ry="15.999986" y="507.798" x="392.57144" height="31.999971" width="31.999989" id="rect4443" style="fill:url(#linearGradient4548);fill-opacity:1;stroke:none"/>
- </clipPath>
- <clipPath id="clipPath4528-1" clipPathUnits="userSpaceOnUse">
- <rect style="fill:url(#linearGradient4532);fill-opacity:1;stroke:none" id="rect4530-7" width="31.999989" height="31.999971" x="8.0000114" y="8.0000038" ry="15.999986"/>
- </clipPath>
- <clipPath id="clipPath4578-8" clipPathUnits="userSpaceOnUse">
- <rect style="fill:url(#linearGradient4582);fill-opacity:1;stroke:none" id="rect4580-7" width="31.999989" height="31.999971" x="392.57144" y="507.798" ry="15.999986"/>
- </clipPath>
- <clipPath id="clipPath4562-8" clipPathUnits="userSpaceOnUse">
- <rect style="fill:url(#linearGradient4566);fill-opacity:1;stroke:none" id="rect4564-8" width="31.999989" height="31.999971" x="392.57144" y="507.798" ry="15.999986"/>
- </clipPath>
- <clipPath id="clipPath4544-1" clipPathUnits="userSpaceOnUse">
- <rect style="fill:url(#linearGradient4548);fill-opacity:1;stroke:none" id="rect4546-1" width="31.999989" height="31.999971" x="392.57144" y="507.798" ry="15.999986"/>
- </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="11.061087" inkscape:cy="12.032563" 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">
- <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="Capa 1" inkscape:groupmode="layer" id="layer1" transform="translate(-326,-532.3622)">
- <g transform="translate(-224.28572,-74.2857)" id="layer1-6" inkscape:label="Capa 1">
- <path id="rect4203" transform="translate(550.28572,606.6479)" d="M 12,4 C 9.9724023,4 8.1286798,4.7566937 6.71875,6 6.592511,6.1113202 6.4627201,6.2247799 6.34375,6.34375 L 6,6.71875 C 4.7566937,8.1286798 4,9.9724023 4,12 c 0,4.41828 3.58172,8 8,8 2.027598,0 3.87132,-0.756694 5.28125,-2 l 0.375,-0.34375 C 17.77522,17.53728 17.88868,17.407489 18,17.28125 19.243306,15.87132 20,14.027598 20,12 20,7.58172 16.41828,4 12,4 Z m 0,1 c 3.86599,0 7,3.13401 7,7 0,1.75366 -0.653215,3.334268 -1.71875,4.5625 L 7.4375,6.71875 C 8.6657315,5.6532151 10.24634,5 12,5 Z M 6.71875,7.4375 16.5625,17.28125 C 15.334268,18.346785 13.75366,19 12,19 8.13401,19 5,15.86599 5,12 5,10.24634 5.6532151,8.6657315 6.71875,7.4375 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/distribute-horizontal-x.svg b/qt-mobile/qml/mobilecomponents/icons/distribute-horizontal-x.svg
deleted file mode 100644
index 1a14480d7..000000000
--- a/qt-mobile/qml/mobilecomponents/icons/distribute-horizontal-x.svg
+++ /dev/null
@@ -1,102 +0,0 @@
-<?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="22"
- height="22"
- id="svg3813"
- version="1.1"
- inkscape:version="0.48+devel r"
- sodipodi:docname="distribute-horizontal-x.svg">
- <defs
- id="defs3815" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="26.930216"
- inkscape:cx="9.6140302"
- inkscape:cy="11.263762"
- 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="668"
- inkscape:window-x="-2"
- inkscape:window-y="23"
- inkscape:window-maximized="1"
- inkscape:showpageshadow="false">
- <inkscape:grid
- type="xygrid"
- id="grid4109" />
- <sodipodi:guide
- position="2.0000072,19.999993"
- orientation="18,0"
- id="guide4115" />
- <sodipodi:guide
- position="2.0000072,1.9999929"
- orientation="0,18"
- id="guide4117" />
- <sodipodi:guide
- position="20.000007,1.9999929"
- orientation="-18,0"
- id="guide4119" />
- <sodipodi:guide
- position="20.000007,19.999993"
- orientation="0,-18"
- id="guide4121" />
- <sodipodi:guide
- position="3.0000072,18.999993"
- orientation="16,0"
- id="guide4123" />
- <sodipodi:guide
- position="3.0000072,2.9999929"
- orientation="0,16"
- id="guide4125" />
- <sodipodi:guide
- position="19.000007,2.9999929"
- orientation="-16,0"
- id="guide4127" />
- <sodipodi:guide
- position="19.000007,18.999993"
- orientation="0,-16"
- id="guide4129" />
- </sodipodi:namedview>
- <metadata
- id="metadata3818">
- <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="Capa 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(-378.85714,-540.07647)">
- <path
- style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none"
- d="M 3 7 L 3 15 L 8 15 L 8 7 L 3 7 z M 14 7 L 14 15 L 19 15 L 19 7 L 14 7 z M 4 8 L 7 8 L 7 14 L 4 14 L 4 8 z M 15 8 L 18 8 L 18 14 L 15 14 L 15 8 z M 9 9 L 9 13 L 10 13 L 10 12 L 12 12 L 12 13 L 13 13 L 13 9 L 12 9 L 12 10 L 10 10 L 10 9 L 9 9 z "
- transform="translate(378.85714,540.07647)"
- id="rect4109" />
- </g>
-</svg>
diff --git a/qt-mobile/qml/mobilecomponents/icons/document-edit.svg b/qt-mobile/qml/mobilecomponents/icons/document-edit.svg
deleted file mode 100644
index 805446a72..000000000
--- a/qt-mobile/qml/mobilecomponents/icons/document-edit.svg
+++ /dev/null
@@ -1,93 +0,0 @@
-<?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="32"
- height="32"
- id="svg5453"
- version="1.1"
- inkscape:version="0.91 r13725"
- sodipodi:docname="document-edit.svg"
- viewBox="0 0 32 32">
- <defs
- id="defs5455" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:zoom="16"
- inkscape:cx="10.68915"
- inkscape:cy="11.29602"
- 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="1920"
- inkscape:window-height="957"
- inkscape:window-x="-4"
- inkscape:window-y="0"
- inkscape:window-maximized="1"
- inkscape:showpageshadow="false"
- borderlayer="true"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:object-nodes="true"
- inkscape:snap-bbox="true"
- inkscape:snap-global="false">
- <inkscape:grid
- type="xygrid"
- id="grid4063" />
- <sodipodi:guide
- position="4,24"
- orientation="28,0"
- id="guide4280" />
- <sodipodi:guide
- position="13,4"
- orientation="0,28"
- id="guide4282" />
- <sodipodi:guide
- position="28,25"
- orientation="-28,0"
- id="guide4284" />
- <sodipodi:guide
- position="15,28"
- orientation="0,-28"
- id="guide4286" />
- </sodipodi:namedview>
- <metadata
- id="metadata5458">
- <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="Capa 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(-384.57143,-515.798)">
- <path
- style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none"
- d="M 22.269531 4 L 4 22.269531 L 4 28 L 9.7304688 28 C 9.7304688 28 27.99966 9.7307308 28 9.7304688 L 22.269531 4 z M 19.404297 8.2988281 L 23.701172 12.595703 L 12 24.298828 L 12 23 L 12 22 L 11 22 L 8 22 L 8 19.701172 L 19.404297 8.2988281 z M 7 20.701172 L 7 23 L 8 23 L 11 23 L 11 25.298828 L 9.2988281 27 L 7.296875 27 L 5 24.703125 L 5 22.701172 L 7 20.701172 z "
- transform="translate(384.57143,515.798)"
- id="rect4132" />
- </g>
-</svg>
diff --git a/qt-mobile/qml/mobilecomponents/icons/document-save.svg b/qt-mobile/qml/mobilecomponents/icons/document-save.svg
deleted file mode 100644
index f400f3a9e..000000000
--- a/qt-mobile/qml/mobilecomponents/icons/document-save.svg
+++ /dev/null
@@ -1,108 +0,0 @@
-<?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="32"
- height="32"
- id="svg5453"
- version="1.1"
- inkscape:version="0.91 r13725"
- sodipodi:docname="document-save.svg"
- viewBox="0 0 32 32">
- <defs
- id="defs5455" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:zoom="16.33333"
- inkscape:cx="24.435643"
- inkscape:cy="11.966458"
- 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="1920"
- inkscape:window-height="957"
- inkscape:window-x="-4"
- inkscape:window-y="0"
- inkscape:window-maximized="1"
- inkscape:showpageshadow="false"
- borderlayer="true"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:object-nodes="true"
- inkscape:snap-bbox="true">
- <inkscape:grid
- type="xygrid"
- id="grid4063" />
- <sodipodi:guide
- position="4,24"
- orientation="28,0"
- id="guide4280" />
- <sodipodi:guide
- position="13,4"
- orientation="0,28"
- id="guide4282" />
- <sodipodi:guide
- position="28,25"
- orientation="-28,0"
- id="guide4284" />
- <sodipodi:guide
- position="15,28"
- orientation="0,-28"
- id="guide4286" />
- </sodipodi:namedview>
- <metadata
- id="metadata5458">
- <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="Capa 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(-384.57143,-515.798)">
- <path
- style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
- d="M 4,4 4,28 28,28 28,10 22,4 Z M 5,5 21.585938,5 27,10.414062 27,27 5,27 Z m 18,0 4,4 z"
- transform="translate(384.57143,515.798)"
- id="rect4167"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccccccccccc" />
- <path
- style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
- d="m 9,19 0,9 14,0 0,-9 z m 1,1 12,0 0,7 -12,0 z"
- transform="translate(384.57143,515.798)"
- id="rect4219"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccccc" />
- <path
- style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
- d="m 10,4 0,9 11,0 0,-9 z m 1,1 6,0 0,7 -6,0 z"
- transform="translate(384.57143,515.798)"
- id="rect4253"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccccc" />
- </g>
-</svg>
diff --git a/qt-mobile/qml/mobilecomponents/icons/go-next.svg b/qt-mobile/qml/mobilecomponents/icons/go-next.svg
deleted file mode 100644
index fe4e783de..000000000
--- a/qt-mobile/qml/mobilecomponents/icons/go-next.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-<?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">
- <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>
- <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>
- <metadata id="metadata3874">
- <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="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
deleted file mode 100644
index 743ff18e2..000000000
--- a/qt-mobile/qml/mobilecomponents/icons/go-previous.svg
+++ /dev/null
@@ -1,127 +0,0 @@
-<?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">
- <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>
- <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>
- <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>
- <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>
- </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>
- <metadata id="metadata3874">
- <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="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/icons/view-readermode.svg b/qt-mobile/qml/mobilecomponents/icons/view-readermode.svg
deleted file mode 100644
index c24c574a5..000000000
--- a/qt-mobile/qml/mobilecomponents/icons/view-readermode.svg
+++ /dev/null
@@ -1,110 +0,0 @@
-<?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="16"
- height="16"
- id="svg4183"
- version="1.1"
- inkscape:version="0.91 r13725"
- sodipodi:docname="view-readmode.svg">
- <defs
- id="defs4185" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1"
- inkscape:cx="8.5616986"
- inkscape:cy="7.1492155"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:window-width="1920"
- inkscape:window-height="1006"
- inkscape:window-x="0"
- inkscape:window-y="0"
- inkscape:window-maximized="1"
- showguides="false"
- inkscape:guide-bbox="true"
- inkscape:showpageshadow="false"
- borderlayer="true">
- <inkscape:grid
- type="xygrid"
- id="grid4103" />
- <sodipodi:guide
- position="2,20.000017"
- orientation="18,0"
- id="guide4095" />
- <sodipodi:guide
- position="2,2.0000174"
- orientation="0,18"
- id="guide4097" />
- <sodipodi:guide
- position="20,2.0000174"
- orientation="-18,0"
- id="guide4099" />
- <sodipodi:guide
- position="20,20.000017"
- orientation="0,-18"
- id="guide4101" />
- <sodipodi:guide
- position="3,19.000017"
- orientation="16,0"
- id="guide4103" />
- <sodipodi:guide
- position="3,3.0000174"
- orientation="0,16"
- id="guide4105" />
- <sodipodi:guide
- position="19,3.0000174"
- orientation="-1,6.123234e-17"
- id="guide4107" />
- <sodipodi:guide
- position="19,19.000017"
- orientation="0,-16"
- id="guide4109" />
- <sodipodi:guide
- position="10.292994,3.0001395"
- orientation="0,1.414012"
- id="guide4266" />
- <sodipodi:guide
- position="10,3.0000174"
- orientation="0,2"
- id="guide4137" />
- </sodipodi:namedview>
- <metadata
- id="metadata4188">
- <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="Capa 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(0,-1036.3622)">
- <path
- inkscape:connector-curvature="0"
- id="rect6742"
- d="m 5,1039.3622 c -2,0 -3.02083,1.5 -4,1.5 -0.9792,0 -1,-0.5 -1,-0.5 l 0,8 c 0,0 -0.0417,0.5 1,0.5 1.04167,0 2,-1.5 4,-1.5 2,0 3,1 3,1 0,0 1,-1 3,-1 2,0 2.89583,1.5 4,1.5 1.10417,0 1,-0.5 1,-0.5 l 0,-7.9375 c -0.0371,0.1406 -0.21875,0.4375 -1,0.4375 -1.04167,0 -2,-1.5 -4,-1.5 -2,0 -3,1 -3,1 0,0 -1,-1 -3,-1 z m 0,1 c 0.83333,0 1.9477275,0.3853 2.28125,0.7188 0.366467,0.2812 1.071033,0.2812 1.4375,0 0.270433,-0.2704 1.44792,-0.7188 2.28125,-0.7188 2,0 2.3125,1.5 4,1.5 l 0,6 c -0.861649,0 -1.855068,-1.5 -4,-1.5 -1.16667,0 -2.410156,0.2227 -3,0.8125 -0.5605,-0.5605 -1.83333,-0.8125 -3,-0.8125 -2.0510194,0 -3.3570144,1.5 -4,1.5 l 0,-6 c 1.53147,0 2,-1.5 4,-1.5 z"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
- sodipodi:nodetypes="ssccsscssccsscssccsccscsccs" />
- </g>
-</svg>
diff --git a/qt-mobile/qml/mobilecomponents/private/AbstractDrawer.qml b/qt-mobile/qml/mobilecomponents/private/AbstractDrawer.qml
deleted file mode 100644
index db662509c..000000000
--- a/qt-mobile/qml/mobilecomponents/private/AbstractDrawer.qml
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtGraphicalEffects 1.0
-import org.kde.plasma.mobilecomponents 0.2
-
-//TODO: This will become a QQC2 Drawer
-//providing just a dummy api for now
-Item {
- id: root
- anchors.fill: parent
- z: 9999
-
- default property alias page: mainPage.data
- property Item contentItem
- property bool opened
- property int edge: Qt.LeftEdge
- property real position: 0
-
- function open () { }
- function close () { }
- signal clicked
-
- Item {
- id: mainPage
- anchors.fill: parent
- onChildrenChanged: mainPage.children[0].anchors.fill = mainPage
- }
-}
-
diff --git a/qt-mobile/qml/mobilecomponents/private/ActionButton.qml b/qt-mobile/qml/mobilecomponents/private/ActionButton.qml
deleted file mode 100644
index c6963c285..000000000
--- a/qt-mobile/qml/mobilecomponents/private/ActionButton.qml
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtQuick.Layouts 1.2
-import QtGraphicalEffects 1.0
-import org.kde.plasma.mobilecomponents 0.2
-
-MouseArea {
- id: button
- 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.medium
- Layout.maximumWidth: Layout.minimumWidth
- implicitWidth: Units.iconSizes.medium
- implicitHeight: width
- drag {
- target: button
- axis: Drag.XAxis
- 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;
- if (translateTransform.y < button.height) {
- showAnimation.to = button.height;
- } else {
- showAnimation.to = 0;
- }
- showAnimation.running = true;
- }
-
- transform: Translate {
- id: translateTransform
- }
- property var downTimestamp;
- property int startX
- onPressed: {
- downTimestamp = (new Date()).getTime();
- startX = button.x
- }
- onReleased: {
- //pixel/second
- var speed = ((button.x - startX) / ((new Date()).getTime() - downTimestamp) * 1000);
-
- //project where it would be a full second in the future
- if (globalDrawer && x + speed > Math.min(parent.width/4*3, parent.width/2 + globalDrawer.contentItem.width/2)) {
- globalDrawer.open();
- contextDrawer.close();
- } else if (contextDrawer && x + speed < Math.max(parent.width/4, parent.width/2 - contextDrawer.contentItem.width/2)) {
- if (contextDrawer) {
- contextDrawer.open();
- }
- if (globalDrawer) {
- globalDrawer.close();
- }
- } else {
- if (globalDrawer) {
- globalDrawer.close();
- }
- if (contextDrawer) {
- contextDrawer.close();
- }
- }
- }
- onClicked: {
- if (checkable) {
- checked = !checked;
- }
-
- //if an action has been assigned, trigger it
- if (button.action && button.action.trigger) {
- button.action.trigger();
- }
- }
- Connections {
- target: globalDrawer
- onPositionChanged: {
- if (!button.pressed) {
- button.x = globalDrawer.contentItem.width * globalDrawer.position + button.parent.width/2 - button.width/2;
- }
- }
- }
- Connections {
- target: contextDrawer
- onPositionChanged: {
- if (!button.pressed) {
- button.x = button.parent.width/2 - button.width/2 - contextDrawer.contentItem.width * contextDrawer.position;
- }
- }
- }
- Connections {
- target: button.parent
- onWidthChanged: button.x = button.parent.width/2 - button.width/2
- }
- onXChanged: {
- if (button.pressed) {
- if (globalDrawer) {
- globalDrawer.position = Math.min(1, Math.max(0, (x - button.parent.width/2 + button.width/2)/globalDrawer.contentItem.width));
- }
- if (contextDrawer) {
- contextDrawer.position = Math.min(1, Math.max(0, (button.parent.width/2 - button.width/2 - x)/contextDrawer.contentItem.width));
- }
- }
- }
-
- NumberAnimation {
- id: showAnimation
- target: translateTransform
- properties: "y"
- duration: Units.longDuration
- easing.type: Easing.InOutQuad
- }
- Item {
- id: background
- anchors {
- fill: parent
- leftMargin: -Units.gridUnit
- rightMargin: -Units.gridUnit
- }
- Rectangle {
- radius: width/2
- anchors.centerIn: parent
- height: parent.height - Units.smallSpacing*2
- width: height
- color: button.pressed || button.checked ? Theme.highlightColor : Theme.backgroundColor
- Icon {
- id: icon
- anchors {
- fill: parent
- margins: Units.smallSpacing
- }
- }
- ActionButtonArrow {
- anchors {
- right: parent.left
- rightMargin: Units.smallSpacing
- }
- visible: contextDrawer && contextDrawer.enabled
- inverted: true
- }
- ActionButtonArrow {
- anchors {
- left: parent.right
- leftMargin: Units.smallSpacing
- }
- visible: globalDrawer && globalDrawer.enabled
- }
- Behavior on color {
- ColorAnimation {
- duration: Units.longDuration
- easing.type: Easing.InOutQuad
- }
- }
- Behavior on x {
- NumberAnimation {
- duration: Units.longDuration
- easing.type: Easing.InOutQuad
- }
- }
- }
- }
- DropShadow {
- anchors.fill: background
- horizontalOffset: 0
- verticalOffset: Units.smallSpacing/3
- radius: Units.gridUnit / 3.5
- samples: 16
- color: button.pressed ? "transparent" : Qt.rgba(0, 0, 0, 0.5)
- source: background
- }
-}
-
diff --git a/qt-mobile/qml/mobilecomponents/private/ActionButtonArrow.qml b/qt-mobile/qml/mobilecomponents/private/ActionButtonArrow.qml
deleted file mode 100644
index 7b585452b..000000000
--- a/qt-mobile/qml/mobilecomponents/private/ActionButtonArrow.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2015 Marco Martin <mart@kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-import QtQuick 2.1
-import QtQuick.Layouts 1.2
-import QtGraphicalEffects 1.0
-import org.kde.plasma.mobilecomponents 0.2
-
-Canvas {
- id: canvas
- width: Units.gridUnit
- height: width
- property bool inverted
- property color color: parent.color
- anchors.verticalCenter: parent.verticalCenter
-
- onColorChanged: requestPaint()
-
- onPaint: {
- var ctx = canvas.getContext("2d");
- ctx.fillStyle = canvas.color;
- ctx.beginPath();
- if (inverted) {
- ctx.moveTo(canvas.width, 0);
- ctx.bezierCurveTo(canvas.width-canvas.width/8, 0,
- canvas.width-canvas.width/8, canvas.height,
- canvas.width, canvas.height);
- ctx.lineTo(0, canvas.height/2);
- } else {
- ctx.moveTo(0, 0);
- ctx.bezierCurveTo(canvas.width/8, 0,
- canvas.width/8, canvas.height,
- 0, canvas.height);
- ctx.lineTo(canvas.width, canvas.height/2);
- //ctx.lineTo(0, canvas.height);
- }
- ctx.fill();
- }
-}
-
diff --git a/qt-mobile/qml/mobilecomponents/private/PageStack.js b/qt-mobile/qml/mobilecomponents/private/PageStack.js
deleted file mode 100644
index 8986956b0..000000000
--- a/qt-mobile/qml/mobilecomponents/private/PageStack.js
+++ /dev/null
@@ -1,243 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Components project.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// Page stack. Items are page containers.
-var pageStack = [];
-
-// Page component cache map. Key is page url, value is page component.
-var componentCache = {};
-
-// Returns the page stack depth.
-function getDepth() {
- return pageStack.length;
-}
-
-// Pushes a page on the stack.
-function push(page, properties, replace, immediate) {
- // page order sanity check
- if ((!replace && page == currentPage)
- || (replace && pageStack.length > 1
- && page == pageStack[pageStack.length - 2].page)) {
- throw new Error("Cannot navigate so that the resulting page stack has two consecutive entries of the same page instance.");
- }
-
- // figure out if more than one page is being pushed
- var pages;
- if (page instanceof Array) {
- pages = page;
- page = pages.pop();
- if (page.createObject === undefined && page.parent === undefined && typeof page != "string") {
- properties = properties || page.properties;
- page = page.page;
- }
- }
-
- // get the current container
- var oldContainer;
- if (pageStack.length) {
- oldContainer = pageStack[pageStack.length - 1];
- }
-
- // pop the old container off the stack if this is a replace
- if (oldContainer && replace) {
- pageStack.pop();
- }
-
- // push any extra defined pages onto the stack
- if (pages) {
- var i;
- for (i = 0; i < pages.length; i++) {
- var tPage = pages[i];
- var tProps;
- if (tPage.createObject === undefined && tPage.parent === undefined && typeof tPage != "string") {
- tProps = tPage.properties;
- tPage = tPage.page;
- }
- pageStack.push(initPage(tPage, tProps));
- }
- }
-
- // initialize the page
- var container = initPage(page, properties);
-
- // push the page container onto the stack
- pageStack.push(container);
-
- depth = pageStack.length;
- currentPage = container.page;
-
- // perform page transition
- //FIXME: this should be in for PageStack, out for PageRow?
- //immediate = immediate || !oldContainer;
- var orientationChange = false;
- if (oldContainer) {
- orientationChange = orientationChanges(oldContainer.page, container.page);
- oldContainer.pushExit(replace, immediate, orientationChange);
- }
-
- // sync tool bar
- var tools = container.page.tools || null;
- if (toolBar) {
- toolBar.setTools(tools, immediate ? "set" : replace ? "replace" : "push");
- }
-
- container.pushEnter(immediate, orientationChange);
- return container.page;
-}
-
-// Initializes a page and its container.
-function initPage(page, properties) {
- var container = containerComponent.createObject(root);
-
- var pageComp;
- if (page.createObject) {
- // page defined as component
- pageComp = page;
- } else if (typeof page == "string") {
- // page defined as string (a url)
- pageComp = componentCache[page];
- if (!pageComp) {
- pageComp = componentCache[page] = Qt.createComponent(page);
- }
- }
- if (pageComp) {
- if (pageComp.status == Component.Error) {
- throw new Error("Error while loading page: " + pageComp.errorString());
- } else {
- // instantiate page from component
- page = pageComp.createObject(container.pageParent, properties || {});
- }
- } else {
- // copy properties to the page
- for (var prop in properties) {
- if (properties.hasOwnProperty(prop)) {
- page[prop] = properties[prop];
- }
- }
- }
-
- container.page = page;
- if (page.parent == null || page.parent == container.pageParent) {
- container.owner = container;
- } else {
- container.owner = page.parent;
- }
-
- // the page has to be reparented if
- if (page.parent != container.pageParent) {
- page.parent = container.pageParent;
- }
-
- if (page.pageStack !== undefined) {
- page.pageStack = root;
- }
-
- page.anchors.fill = container.pageParent
-
- return container;
-}
-
-// Pops a page off the stack.
-function pop(page, immediate) {
- // make sure there are enough pages in the stack to pop
- if (pageStack.length > 1) {
- //unwind to itself means no pop
- if (page !== undefined && page == pageStack[pageStack.length - 1].page) {
- return
- }
- // pop the current container off the stack and get the next container
- var oldContainer = pageStack.pop();
- var container = pageStack[pageStack.length - 1];
- if (page !== undefined) {
- // an unwind target has been specified - pop until we find it
- while (page != container.page && pageStack.length > 1) {
- pageStack.pop();
- container.popExit(immediate, false);
- container = pageStack[pageStack.length - 1];
- }
- }
-
- depth = pageStack.length;
- currentPage = container.page;
-
- // perform page transition
- var orientationChange = orientationChanges(oldContainer.page, container.page);
- oldContainer.popExit(immediate, orientationChange);
- container.popEnter(immediate, orientationChange);
-
- // sync tool bar
- var tools = container.page.tools || null;
- if (toolBar) {
- toolBar.setTools(tools, immediate ? "set" : "pop");
- }
- return oldContainer.page;
- } else {
- return null;
- }
-}
-
-// Checks if the orientation changes between oldPage and newPage
-function orientationChanges(oldPage, newPage) {
- return newPage.orientationLock != 0 //PlasmaComponents.PageOrientation.Automatic
- && newPage.orientationLock != 3//PlasmaComponents.PageOrientation.LockPrevious
- && newPage.orientationLock != oldPage.orientationLock
-}
-
-// Clears the page stack.
-function clear() {
- var container;
- while (container = pageStack.pop()) {
- container.cleanup();
- }
- depth = 0;
- currentPage = null;
-}
-
-// Iterates through all pages in the stack (top to bottom) to find a page.
-function find(func) {
- for (var i = pageStack.length - 1; i >= 0; i--) {
- var page = pageStack[i].page;
- if (func(page)) {
- return page;
- }
- }
- return null;
-}
-
diff --git a/qt-mobile/qml/mobilecomponents/private/qmldir b/qt-mobile/qml/mobilecomponents/private/qmldir
deleted file mode 100644
index 35e158210..000000000
--- a/qt-mobile/qml/mobilecomponents/private/qmldir
+++ /dev/null
@@ -1,3 +0,0 @@
-module org.kde.plasma.mobilecomponents.private
-#plugin mobilecomponentsprivateplugin
-
diff --git a/qt-mobile/qml/mobilecomponents/qmldir b/qt-mobile/qml/mobilecomponents/qmldir
deleted file mode 100644
index 999f823ea..000000000
--- a/qt-mobile/qml/mobilecomponents/qmldir
+++ /dev/null
@@ -1,21 +0,0 @@
-module org.kde.plasma.mobilecomponents
-#plugin mobilecomponentsplugin
-
-singleton Units 0.2 Units.qml
-singleton Theme 0.2 Theme.qml
-
-IconGrid 0.2 IconGrid.qml
-OverlayDrawer 0.2 OverlayDrawer.qml
-SplitDrawer 0.2 SplitDrawer.qml
-ActionGroup 0.2 ActionGroup.qml
-ApplicationWindow 0.2 ApplicationWindow.qml
-ContextDrawer 0.2 ContextDrawer.qml
-GlobalDrawer 0.2 GlobalDrawer.qml
-Page 0.2 Page.qml
-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
diff --git a/scripts/build.sh b/scripts/build.sh
index 1ea0e3ef0..9db5c983d 100755
--- a/scripts/build.sh
+++ b/scripts/build.sh
@@ -23,6 +23,11 @@ exec 1> >(tee build.log) 2>&1
SRC=$(pwd)
PLATFORM=$(uname)
+# to build Subsurface-mobile on the desktop change this to
+# SUBSURFACE_EXECUTABLE=MobileExecutable
+SUBSURFACE_EXECUTABLE=DesktopExecutable
+
+
if [[ ! -d "subsurface" ]] ; then
echo "please start this script from the directory containing the Subsurface source directory"
exit 1
@@ -161,6 +166,49 @@ cmake -DCMAKE_BUILD_TYPE=Release \
make -j4
make install
+# pull the plasma-mobile components from upstream if building Subsurface-mobile
+if [ "$SUBSURFACE_EXECUTABLE" = "MobileExecutable" ] ; then
+ # now bring in the latest Plasma-mobile mobile components plus a couple of icons that we need
+ # first, get the latest from upstream
+ # yes, this is a bit overkill as we clone a lot of stuff for just a few files, but this way
+ # we stop having to manually merge our code with upstream all the time
+ # as we get closer to shipping a production version we'll likely check out specific tags
+ # or SHAs from upstream
+ cd $SRC
+ if [ ! -d plasma-mobile ] ; then
+ git clone git://github.com/KDE/plasma-mobile
+ fi
+ pushd plasma-mobile
+ git pull
+ popd
+ if [ ! -d breeze-icons ] ; then
+ git clone git://anongit.kde.org/breeze-icons
+ fi
+ pushd breeze-icons
+ git pull
+ popd
+
+ # now copy the components and a couple of icons into plae
+ MC=$SRC/subsurface/qt-mobile/qml/mobilecomponents
+ PMMC=plasma-mobile/components/mobilecomponents
+ BREEZE=breeze-icons
+
+ rm -rf $MC
+ mkdir -p $MC/icons
+ cp -R $PMMC/qml/* $MC/
+ cp $PMMC/fallbacktheme/*qml $MC/
+
+ cp $BREEZE/icons/actions/24/dialog-cancel.svg $MC/icons
+ cp $BREEZE/icons/actions/24/distribute-horizontal-x.svg $MC/icons
+ cp $BREEZE/icons/actions/24/document-edit.svg $MC/icons
+ cp $BREEZE/icons/actions/24/document-save.svg $MC/icons
+ cp $BREEZE/icons/actions/24/go-next.svg $MC/icons
+ cp $BREEZE/icons/actions/24/go-previous.svg $MC/icons
+ cp $BREEZE/icons/actions/16/view-readermode.svg $MC/icons
+
+ echo org.kde.plasma.mobilecomponents synced from upstream
+fi
+
# finally, build Subsurface
if [ $PLATFORM = Darwin ] ; then
@@ -174,6 +222,7 @@ mkdir -p build
cd build
export CMAKE_PREFIX_PATH=$INSTALL_ROOT/lib/cmake
cmake -DCMAKE_BUILD_TYPE=Debug .. \
+ -DSUBSURFACE_TARGET_EXECUTABLE=$SUBSURFACE_EXECUTABLE \
-DLIBGIT2_INCLUDE_DIR=$INSTALL_ROOT/include \
-DLIBGIT2_LIBRARIES=$INSTALL_ROOT/lib/libgit2.$SH_LIB_EXT \
-DLIBDIVECOMPUTER_INCLUDE_DIR=$INSTALL_ROOT/include \