Added Search functionality, and fixed navigation
[spotify:spotify.git] / qmlify / Login.qml
1 /****************************************************************************
2 **
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 **
7 ** This file is part of the QMLify research project.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** No Commercial Usage
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
15 **
16 ** GNU Lesser General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU Lesser
18 ** General Public License version 2.1 as published by the Free Software
19 ** Foundation and appearing in the file LICENSE.LGPL included in the
20 ** packaging of this file.  Please review the following information to
21 ** ensure the GNU Lesser General Public License version 2.1 requirements
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23 **
24 ** In addition, as a special exception, Nokia gives you certain additional
25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27 **
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
30 **
31 **
32 **
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 import Qt 4.7
43 import com.nokia.QSpotify 1.0
44
45 Rectangle {
46     id: login
47
48     anchors.fill: parent
49     color:"grey"
50
51     state: spotify.signInState
52
53     Image {
54         id: spotifyLogo
55         source: "images/spotify-logo.png"
56         height: 200
57         width: 200
58         anchors.horizontalCenter: parent.horizontalCenter
59         anchors.top: parent.top
60         anchors.topMargin: 20
61     }
62
63     Column {
64         id: loginInfoColum
65         anchors.left: parent.left
66         anchors.right: parent.right
67         anchors.top: spotifyLogo.bottom
68         anchors.topMargin: 10
69
70         Text {
71             id: loginText
72             text: "User Name:"
73             anchors.horizontalCenter: parent.horizontalCenter
74         }
75
76         LineEdit {
77             id:loginLineEdit
78             anchors.left: parent.left
79             anchors.leftMargin: 5
80             anchors.right: parent.right
81             anchors.rightMargin: 5
82             echoMode: TextInput.Normal
83             focus: true
84         }
85
86         Text {
87             id: passwordText
88             anchors.horizontalCenter: parent.horizontalCenter
89             anchors.topMargin: 20
90             text: "Password"
91         }
92
93         LineEdit {
94             id:passwordLineEdit
95             anchors.left: parent.left
96             anchors.leftMargin: 5
97             anchors.right: parent.right
98             anchors.rightMargin: 5
99             echoMode: TextInput.Password
100         }
101     }
102
103     Column {
104         id: statusArea
105
106         property bool animateWheel: false
107
108         anchors.top: loginInfoColum.bottom
109         anchors.topMargin: 10
110         anchors.bottom: loginButton.top
111         anchors.horizontalCenter: parent.horizontalCenter
112         spacing: 10
113
114         opacity: 0
115
116         state: spotify.signInState
117
118         Image {
119             id: wheel
120             source: "images/wheel.png"
121             height: 150
122             width: 150
123             anchors.horizontalCenter: parent.horizontalCenter
124         }
125
126         PropertyAnimation {
127             running: statusArea.animateWheel
128             loops: Animation.Infinite
129             from: 0
130             to: 359
131             target: wheel
132             properties: "rotation"
133         }
134         states: [
135             State {
136                 name: QSpotify.TryingToSignIn
137                 PropertyChanges {
138                     target: statusArea
139                     opacity: 1
140                     animateWheel: true
141                 }
142             }
143         ]
144     }
145
146     Button {
147         id: loginButton
148         text: "Login"
149
150         anchors.bottom: parent.bottom
151         anchors.bottomMargin: 5
152         onClicked: {
153             spotify.login(loginLineEdit.text,passwordLineEdit.text);
154         }
155     }
156
157     states: [
158         State {
159             name: QSpotify.TryingToSignIn
160             PropertyChanges {
161                 target: loginButton
162                 enabled: false
163             }
164         }
165     ]
166
167 }