diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-11-29 13:11:10 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-11-29 13:11:10 -0800 |
commit | bb1803986afed7d1f626f941417acae6b3e51830 (patch) | |
tree | 25be40eb35434ea5b5fa4d0a3d64e1c65438bcbb /qt-mobile/qml/mobilecomponents/ContextDrawer.qml | |
parent | 82d97093575d077f2c3703ad3d58124dcc127e27 (diff) | |
parent | 32219f127634b7783b3967d94e35faeff36b51ef (diff) | |
download | subsurface-bb1803986afed7d1f626f941417acae6b3e51830.tar.gz |
Merge branch 'mobilecomponents' of github.com:sebasje/subsurface
Diffstat (limited to 'qt-mobile/qml/mobilecomponents/ContextDrawer.qml')
-rw-r--r-- | qt-mobile/qml/mobilecomponents/ContextDrawer.qml | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/qt-mobile/qml/mobilecomponents/ContextDrawer.qml b/qt-mobile/qml/mobilecomponents/ContextDrawer.qml new file mode 100644 index 000000000..2e2f95f7e --- /dev/null +++ b/qt-mobile/qml/mobilecomponents/ContextDrawer.qml @@ -0,0 +1,93 @@ +/* + * 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 as QtControls +import org.kde.plasma.mobilecomponents 0.2 + +OverlayDrawer { + id: root + + property string title + + //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 + enabled: menu.count > 0 + edge: Qt.RightEdge + + contentItem: QtControls.ScrollView { + ListView { + id: menu + model: { + if (root.actions.length == 0) { + return null; + } else { + return root.actions[0].text !== undefined && + root.actions[0].trigger !== undefined ? + root.actions : + root.actions[0]; + } + } + verticalLayoutDirection: ListView.BottomToTop + //in bottomtotop all is flipped + footer: 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: ListItem { + enabled: true + Row { + anchors { + left: parent.left + margins: Units.largeSpacing + } + Icon { + height: parent.height + width: height + source: modelData.iconName + } + Label { + text: model ? model.text : modelData.text + } + } + 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") + } + } + } + } + } +} |