/****************************************************************************
**
** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

import QtQuick 2.0
import QtQml.Models 2.12

Item {
    id: repeaterelementtest
    anchors.fill: parent
    property string testtext: ""
    property bool showme: true

    Column {
        id: container
        height: 200; width: 250
        spacing: 5
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.bottom: parent.bottom
        anchors.bottomMargin: 15
        Repeater { id: repeaterelement; model: repeatermodel }
        Rectangle { height: 50; width: 150; color: "green" }
        move: Transition { NumberAnimation { properties: "x,y"; duration: 1000; easing.type: Easing.OutBounce } }
        add: Transition { NumberAnimation { properties: "x,y"; duration: 1000; easing.type: Easing.OutBounce } }

    }

    ObjectModel {
        id: repeatermodel
        Rectangle { color: "blue"; height: 40; width: 150; border.color: "black"; border.width: 3; opacity: .9; radius: 5; clip: true
            Text { text: "I am Thing 1"; anchors.centerIn: parent } }
        Rectangle { color: "blue"; height: 40; width: 150; border.color: "black"; border.width: 3; opacity: .9; radius: 5; clip: true
            Text { text: "I am Thing 2"; anchors.centerIn: parent } }
        Rectangle { visible: repeaterelementtest.showme;
            color: "blue"; height: 40; width: 150; border.color: "black"; border.width: 3; opacity: .9; radius: 5; clip: true
            Text { text: "I am Thing 3"; anchors.centerIn: parent } }
        Rectangle { color: "blue"; height: 40; width: 150; border.color: "black"; border.width: 3; opacity: .9; radius: 5; clip: true
            Text { text: "I am Thing 4"; anchors.centerIn: parent } }
        Rectangle { color: "blue"; height: 40; width: 150; border.color: "black"; border.width: 3; opacity: .9; radius: 5; clip: true
            Text { text: "I am Thing 5"; anchors.centerIn: parent } }
    }

    SystemTestHelp { id: helpbubble; visible: statenum != 0
        anchors { top: parent.top; horizontalCenter: parent.horizontalCenter; topMargin: 50 }
    }
    BugPanel { id: bugpanel }

    states: [
        State { name: "start"; when: statenum == 1
            PropertyChanges { target: repeaterelementtest
                testtext: "This is a Repeater element. At present it should be showing five blue rectangles in a column, with"+
                "a green rectangle at the bottom.\n"+
                "Next, let's remove one of the rectangles from the column - the column should bounce when they are removed." }
        },
        State { name: "back"; when: statenum == 2
            PropertyChanges { target: repeaterelementtest; showme: false }
            PropertyChanges { target: repeaterelementtest
                testtext: "Repeater should now be showing a total of five rectangles.\n"+
                "Advance to restart the test." }
        }
    ]

}
