diff --git a/tests/system/sys_listview.qtt b/tests/system/sys_listview.qtt index efd116fa92..ca10e1a0df 100644 --- a/tests/system/sys_listview.qtt +++ b/tests/system/sys_listview.qtt @@ -43,6 +43,74 @@ testcase = { + using_section_delegates: function() + { + // Test Meta-data + testTitle = "Using and changing section delegate properties"; + testBinary = "sections.qml"; + testSource: "$QTDIR/qtdeclarative/tests/system/listview"; + testGoal = "Verify that a Component can be set as a section header, using various properties for different collections."; + testPreconditions = "None"; + testGroups = "BAT,QtQuick 2.0"; + + // Test Steps + prompt(twiki('---+++ ' + testTitle + '

+ *Goal:* ' + testGoal + '
+ *Pre-Requisites:* ' + testPreconditions + '
+ *Tested Binary:* ' + testBinary + '
+ | *Step* | *Verification* | + | Run '+testBinary+' | Application has started, showing a ListView | + | | The view shows a single character section header for each element | + | Press the Criteria button | The section headers now show the full name of each item | + | Press Property | The section headers now show the id value for the items | + | Press Criteria | The section headers now only show i - the first character of id | + | Press Property | The section headers show the first character of the item names |')); + }, + + updating_sections: function() + { + // Test Meta-data + testTitle = "Updating Collected Sections"; + testBinary = "sections.qml"; + testSource: "$QTDIR/qtdeclarative/tests/system/listview"; + testGoal = "Verify that a section is updated when items are added."; + testPreconditions = "None"; + testGroups = "BAT,QtQuick 2.0"; + + // Test Steps + prompt(twiki('---+++ ' + testTitle + '

+ *Goal:* ' + testGoal + '
+ *Pre-Requisites:* ' + testPreconditions + '
+ *Tested Binary:* ' + testBinary + '
+ | *Step* | *Verification* | + | Run '+testBinary+' | Application has started, showing a ListView | + | | The view shows a single character section header for each element | + | Press the + button | A duplicate of every name is added | + | | Each duplicate is place in the same section as the original |')); + }, + + changing_section_delegates: function() + { + // Test Meta-data + testTitle = "Changing Section Delegates"; + testBinary = "sections.qml"; + testSource: "$QTDIR/qtdeclarative/tests/system/listview"; + testGoal = "Verify that a section delegate can be changed."; + testPreconditions = "None"; + testGroups = "BAT,QtQuick 2.0"; + + // Test Steps + prompt(twiki('---+++ ' + testTitle + '

+ *Goal:* ' + testGoal + '
+ *Pre-Requisites:* ' + testPreconditions + '
+ *Tested Binary:* ' + testBinary + '
+ | *Step* | *Verification* | + | Run '+testBinary+' | Application has started, showing a ListView | + | | The view shows a single character section header for each element | + | Press the Delegate button | The section headers now show as light blue rectangles | + | Press the Criteria button | The headers show as full names, still within light blue rectangles |')); + }, + altering_listview_primary_properties: function() { // Test Meta-data diff --git a/tests/testapplications/listview/sections.qml b/tests/testapplications/listview/sections.qml new file mode 100644 index 0000000000..1251e8eef1 --- /dev/null +++ b/tests/testapplications/listview/sections.qml @@ -0,0 +1,197 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $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 + +Rectangle { + height: 400 + width: 300 + property int sets: 1 + + ListModel { + id: listmodel + Component.onCompleted: addNames() + } + + ListView { + id: listview + model: listmodel + height: 300 + width: 200 + clip: true + anchors.centerIn: parent + + section.delegate: del1 + section.criteria: ViewSection.FirstCharacter + section.property: "name" + delegate: Rectangle { + height: 50 + width: 200 + color: "gold" + border.color: "black" + Text { + anchors.centerIn: parent + text: model.name+" ["+model.id+"]" + color: "black" + font.bold: true + } + } + } + + function addNames() { + var names = ["Alpha","Bravo","Charlie","Delta","Echo","Foxtrot", + "Golf","Hotel","India","Juliet","Kilo","Lima","Mike", + "November","Oscar","Papa","Quebec","Romeo","Sierra","Tango", + "Uniform","Victor","Whiskey","XRay","Yankee","Zulu"]; + for (var i=0;i