add some comments
[makneto-zunavac1.git] / src / ui-mobile / declarative / ContactDetailPopup.qml
blobdcfd866346064962c969648cfa68264ebea3d229
1 /*
2  *   Copyright (C) 2011 Lukáš Karas <lukas.karas@centrum.cz>
3  *
4  *   This program is free software; you can redistribute it and/or modify
5  *   it under the terms of the GNU General Public License as published by
6  *   the Free Software Foundation; either version 2 of the License, or
7  *   (at your option) any later version.
8  *
9  *   This program is distributed in the hope that it will be useful,
10  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *   GNU General Public License for more details.
13  *
14  *   You should have received a copy of the GNU General Public License
15  *   along with this program; if not, write to the
16  *   Free Software Foundation, Inc.,
17  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18  */
19 import Qt 4.7
20 import QtQuick 1.0
21 import "./components/styles/default" as DefaultStyles
22 import "components"
23 import org.makneto 0.1 as Makneto
25 AbstractPopup{
27     property variant contactLine: {};
28     property bool defined : contactLine.accountId !== undefined // true while popup is not set yet
30     // this weird code align all buttons to block... I don't know how make it better...
31     property int maxButtonWidth: Math.max(chatButton.width, Math.max(callButton.width, videoButton.width))
33     SystemPalette { id: syspal }
35     Rectangle{
36         id: background
37         anchors.fill: wrapper
38         opacity: wrapper.opacity
39         color: main.useSyspal? syspal.mid :"#323235"
40         radius: (width*0.03)
42         Rectangle{
43             id: border
44             anchors.fill: parent
45             radius: parent.radius
46             border{ color: main.useSyspal? syspal.windowText :"white"; width: 1 }
47             color: "transparent"
48             opacity: 0.25
49             //opacity: 1.0
50         }
52         Text{
53             id: contactName
54             color: main.useSyspal? syspal.windowText :"white"
55             anchors{
56                 top: parent.top;
57                 left: parent.left;
58                 margins: contactId.height;
59             }
60             text: defined? contactLine.titleText: "???"
61             font.bold: true
62             font.pixelSize: contactId.height * 1.3
63         }
64         Text{
65             id: contactId
66             color: main.useSyspal? syspal.windowText :"gray"
67             opacity: 0.6
68             anchors{
69                 top: contactName.bottom;
70                 left: parent.left;
71                 leftMargin: 6
72             }
73             text: defined? contactLine.contactId : "???"
74         }
76         Button{
77             id: chatButton
78             anchors{ right: parent.right; top: contactId.bottom}
79             anchors.margins: 6
80             text: "Start Chat"
81             minimumWidth: maxButtonWidth
83             onClicked: {
84                 main.getSessionController().requestSession(contactLine.accountId, contactLine.contactId, Makneto.Session.SessionTypeText);
85                 hidePopup();
86             }
87         }
88         Button{
89             id: callButton
90             anchors{ right: parent.right; top: chatButton.bottom}
91             anchors.margins: 6
92             text: "Start Call"
93             minimumWidth: maxButtonWidth
95             onClicked: {
96                 main.getSessionController().requestSession(contactLine.accountId, contactLine.contactId, Makneto.Session.SessionTypeAudio);
97                 hidePopup();
98             }
99         }
100         Button{
101             id: videoButton
102             anchors{ right: parent.right; top: callButton.bottom}
103             anchors.margins: 6
104             text: "Start Video Call"
105             minimumWidth: maxButtonWidth
107             onClicked: {
108                 main.getSessionController().requestSession(contactLine.accountId, contactLine.contactId, Makneto.Session.SessionTypeVideo);
109                 hidePopup();
110             }
111         }
113         Image {
114             id: contactIcon
115             anchors{ top: contactId.bottom; right: videoButton.left; margins: 6}
116             height: Math.min( parent.height / 2, parent.width / 2)
117             width: height
118             source: defined? contactLine.iconSource :""
119         }
121         Text{
122             id:statusText
123             text: defined? contactLine.statusMessage: "???"
124             color: main.useSyspal? syspal.windowText :"white"
125             anchors{
126                 top: contactIcon.bottom
127                 left: parent.left
128                 right: parent.right
129                 bottom: parent.bottom
130                 margins: 6
131             }
132             font.italic: true
133             wrapMode: Text.NoWrap
134             textFormat: Text.RichText
135             clip: true
136         }
137     }