Skip to content

Commit

Permalink
Merge pull request #64 from neochapay/listitem_update
Browse files Browse the repository at this point in the history
[ListView] Add actions indicator and showActions property
  • Loading branch information
locusf authored Apr 28, 2018
2 parents 759b4be + 022e314 commit 7b6fac1
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 17 deletions.
55 changes: 39 additions & 16 deletions examples/touch/content/ListViewPage.qml
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,26 @@ import QtQuick.Controls.Styles.Nemo 1.0
Page {
id: listViewPage

headerTools: HeaderToolsLayout { showBackButton: true; title: "MediumListView" }
headerTools: HeaderToolsLayout { showBackButton: true; title: "ListView" }


ListModel {
id: animalsModel
ListElement { name: "Ant"; desc: "Small description"; size: "Tiny" }
ListElement { name: "Flea"; desc: ""; size: "Tiny" }
ListElement { name: "Parrot"; desc: ""; size: "Small" }
ListElement { name: "Guinea pig"; desc: "The guinea pig, cavy or domestic guinea pig, or cuy for livestock breeds, is a species of rodent belonging to the family Caviidae and the genus Cavia"; size: "Small" }
ListElement { name: "Rat"; desc: ""; size: "Small" }
ListElement { name: "Butterfly"; desc: ""; size: "Small" }
ListElement { name: "Dog"; desc: ""; size: "Medium" }
ListElement { name: "Cat"; desc: ""; size: "Medium" }
ListElement { name: "Pony"; desc: ""; size: "Medium" }
ListElement { name: "Koala"; desc: ""; size: "Medium" }
ListElement { name: "Horse"; desc: ""; size: "Large" }
ListElement { name: "Tiger"; desc: ""; size: "Large" }
ListElement { name: "Giraffe"; desc: ""; size: "Large" }
ListElement { name: "Elephant"; desc: ""; size: "Huge" }
ListElement { name: "Whale"; desc: ""; size: "Huge" }
ListElement { name: "Ant"; desc: "Small description"; size: "Tiny"; canRemove: true}
ListElement { name: "Flea"; desc: ""; size: "Tiny"; canRemove: false }
ListElement { name: "Parrot"; desc: ""; size: "Small"; canRemove: true }
ListElement { name: "Guinea pig"; desc: "The guinea pig, cavy or domestic guinea pig, or cuy for livestock breeds, is a species of rodent belonging to the family Caviidae and the genus Cavia"; size: "Small"; canRemove: false }
ListElement { name: "Rat"; desc: ""; size: "Small"; canRemove: true }
ListElement { name: "Butterfly"; desc: ""; size: "Small"; canRemove: false }
ListElement { name: "Dog"; desc: ""; size: "Medium"; canRemove: true }
ListElement { name: "Cat"; desc: ""; size: "Medium"; canRemove: false }
ListElement { name: "Pony"; desc: ""; size: "Medium"; canRemove: true }
ListElement { name: "Koala"; desc: ""; size: "Medium"; canRemove: false }
ListElement { name: "Horse"; desc: ""; size: "Large"; canRemove: true }
ListElement { name: "Tiger"; desc: ""; size: "Large"; canRemove: false }
ListElement { name: "Giraffe"; desc: ""; size: "Large"; canRemove: true }
ListElement { name: "Elephant"; desc: ""; size: "Huge"; canRemove: false }
ListElement { name: "Whale"; desc: ""; size: "Huge"; canRemove: true }
}

ListView {
Expand All @@ -34,9 +34,32 @@ Page {
clip: true
model: animalsModel
delegate: ListViewItemWithActions {
id: item
label: name
description: desc
showNext: false
showActions: canRemove

width: parent.width
height: Theme.itemHeightLarge

actions: Rectangle{
id: itemActions
height: Theme.itemHeightLarge
width: height

color: "transparent"

Image{
id: removeButton
width: parent.width*0.6
height: width

source: "image://theme/times"

anchors.centerIn: parent
}
}
}
section.property: "size"
}
Expand Down
43 changes: 42 additions & 1 deletion src/controls/qml/ListViewItemWithActions.qml
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
/****************************************************************************************
**
** Copyright (C) 2017-2018 Chupligin Sergey <[email protected]>
** All rights reserved.
**
** You may use this file under the terms of 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 the author 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 HOLDERS 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.
**
****************************************************************************************/

import QtQuick 2.6
import QtQuick.Controls.Nemo 1.0

Expand All @@ -17,6 +48,8 @@ Item {
property bool showNext: true
property bool iconVisible: true

property bool showActions: true

property alias actions: actionsLoader.sourceComponent

signal clicked
Expand Down Expand Up @@ -58,6 +91,14 @@ Item {
NumberAnimation { duration: 200}
}

Rectangle{
id: actionIndicator
height: parent.height
width: Theme.itemSpacingSmall/4-Theme.itemSpacingSmall/4*listArea.x/actionsArea.width
color: Theme.accentColor
visible: (actionsLoader.item && showActions)
}

Rectangle {
anchors.fill: parent
color: "#11ffffff"
Expand Down Expand Up @@ -192,7 +233,7 @@ Item {
}

onPressAndHold: {
if (actionsLoader.item) {
if (actionsLoader.item && showActions) {
listArea.x = actionsArea.width
}
}
Expand Down

0 comments on commit 7b6fac1

Please sign in to comment.