/**************************************************************************** ** ** This file is part of CoffeeTweed ** ** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** 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." ** ****************************************************************************/ import Qt 4.7 Item { id: cuptray width: 330 height: 110 TrayModel{ id: trayModel } function addCup(index) { var cupIndex = index - 1; trayModel.set(cupIndex, { cupState: "display" }); } function removeCup(index) { var cupIndex = index; trayModel.set(cupIndex, { cupState: "hidden" }); } Component { id: emptyCup Item { id: cupItem x: xPos y: yPos z: zPos width: 69 height: 67 state: cupState Image { id: cupImage source: imageSource opacity: 0 } states: [ State { name: "display" PropertyChanges { target: cupImage; opacity: 1.0; } }, State { name: "hidden" PropertyChanges { target: cupImage; opacity: 0.0; } } ] transitions: [ Transition { from: "*"; to: "hidden" PropertyAnimation { target: cupImage; property: "opacity"; duration: 400; } }, Transition { from: "hidden"; to: "display" PropertyAnimation { target: cupImage; property: "opacity"; duration: 400; } } ] } } Repeater { model: trayModel delegate: emptyCup } }