Commit 3721814e authored by Ronan Abhamon's avatar Ronan Abhamon

feat(app): calls in progress

parent 7096eb69
...@@ -38,7 +38,7 @@ Rectangle { ...@@ -38,7 +38,7 @@ Rectangle {
ContactDescription { ContactDescription {
id: contactDescription id: contactDescription
height: CallStyle.contactDescriptionHeight height: CallStyle.header.contactDescriptionHeight
horizontalTextAlignment: Text.AlignHCenter horizontalTextAlignment: Text.AlignHCenter
sipAddress: call.sipAddress sipAddress: call.sipAddress
username: LinphoneUtils.getContactUsername(_contactObserver.contact || call.sipAddress) username: LinphoneUtils.getContactUsername(_contactObserver.contact || call.sipAddress)
...@@ -47,9 +47,9 @@ Rectangle { ...@@ -47,9 +47,9 @@ Rectangle {
BusyIndicator { BusyIndicator {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
color: CallStyle.busyIndicator.color color: CallStyle.header.busyIndicator.color
height: CallStyle.busyIndicator.height height: CallStyle.header.busyIndicator.height
width: CallStyle.busyIndicator.width width: CallStyle.header.busyIndicator.width
visible: call.isOutgoing visible: call.isOutgoing
} }
...@@ -64,7 +64,7 @@ Rectangle { ...@@ -64,7 +64,7 @@ Rectangle {
Layout.fillHeight: true Layout.fillHeight: true
Layout.fillWidth: true Layout.fillWidth: true
Layout.margins: CallStyle.containerMargins Layout.margins: CallStyle.container.margins
Avatar { Avatar {
id: avatar id: avatar
...@@ -73,14 +73,14 @@ Rectangle { ...@@ -73,14 +73,14 @@ Rectangle {
var height = container.height var height = container.height
var width = container.width var width = container.width
var size = height < CallStyle.avatar.maxSize && height > 0 var size = height < CallStyle.container.avatar.maxSize && height > 0
? height ? height
: CallStyle.avatar.maxSize : CallStyle.container.avatar.maxSize
return size < width ? size : width return size < width ? size : width
} }
anchors.centerIn: parent anchors.centerIn: parent
backgroundColor: CallStyle.avatar.backgroundColor backgroundColor: CallStyle.container.avatar.backgroundColor
image: _contactObserver.contact && _contactObserver.contact.avatar image: _contactObserver.contact && _contactObserver.contact.avatar
username: contactDescription.username username: contactDescription.username
...@@ -97,7 +97,7 @@ Rectangle { ...@@ -97,7 +97,7 @@ Rectangle {
id: actionArea id: actionArea
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: CallStyle.actionAreaHeight Layout.preferredHeight: CallStyle.actionArea.height
} }
} }
} }
...@@ -39,16 +39,16 @@ Rectangle { ...@@ -39,16 +39,16 @@ Rectangle {
id: info id: info
Layout.fillWidth: true Layout.fillWidth: true
Layout.leftMargin: CallStyle.info.leftMargin Layout.leftMargin: CallStyle.header.leftMargin
Layout.rightMargin: 20 Layout.rightMargin: CallStyle.header.rightMargin
Layout.preferredHeight: CallStyle.contactDescriptionHeight Layout.preferredHeight: CallStyle.header.contactDescriptionHeight
Icon { Icon {
id: callQuality id: callQuality
anchors.left: parent.left anchors.left: parent.left
icon: 'call_quality_' + 2 icon: 'call_quality_' + 2
iconSize: 40 iconSize: CallStyle.header.iconSize
} }
ContactDescription { ContactDescription {
...@@ -67,7 +67,7 @@ Rectangle { ...@@ -67,7 +67,7 @@ Rectangle {
id: cameraActions id: cameraActions
anchors.right: parent.right anchors.right: parent.right
iconSize: 40 iconSize: CallStyle.header.iconSize
ActionButton { ActionButton {
icon: 'screenshot' icon: 'screenshot'
...@@ -92,7 +92,7 @@ Rectangle { ...@@ -92,7 +92,7 @@ Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true Layout.fillHeight: true
Layout.margins: CallStyle.containerMargins Layout.margins: CallStyle.container.margins
Component { Component {
id: avatar id: avatar
...@@ -102,13 +102,14 @@ Rectangle { ...@@ -102,13 +102,14 @@ Rectangle {
var height = container.height var height = container.height
var width = container.width var width = container.width
var size = height < CallStyle.avatar.maxSize && height > 0 var size = height < CallStyle.container.avatar.maxSize && height > 0
? height ? height
: CallStyle.avatar.maxSize : CallStyle.container.avatar.maxSize
return size < width ? size : width return size < width ? size : width
} }
backgroundColor: CallStyle.avatar.backgroundColor backgroundColor: CallStyle.container.avatar.backgroundColor
image: _contactObserver.contact ? _contactObserver.contact.vcard.avatar : '' image: _contactObserver.contact ? _contactObserver.contact.vcard.avatar : ''
username: contactDescription.username username: contactDescription.username
...@@ -132,65 +133,66 @@ Rectangle { ...@@ -132,65 +133,66 @@ Rectangle {
} }
} }
// --------------------------------------------------------------- // -------------------------------------------------------------------------
// Buttons. // Buttons.
// --------------------------------------------------------------- // -------------------------------------------------------------------------
Item { Item {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: CallStyle.actionAreaHeight Layout.preferredHeight: CallStyle.actionArea.height
GridLayout { GridLayout {
anchors { anchors {
left: parent.left left: parent.left
leftMargin: CallStyle.leftButtonsGroupMargin leftMargin: CallStyle.actionArea.leftButtonsGroupMargin
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
rowSpacing: ActionBarStyle.spacing rowSpacing: ActionBarStyle.spacing
columns: call.width < 645 && isVideoCall ? 2 : 4 columns: incall.width < CallStyle.actionArea.lowWidth ? 2 : 4
ActionSwitch { ActionSwitch {
enabled: !call.microMuted
icon: 'micro' icon: 'micro'
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
onClicked: enabled = !enabled
onClicked: call.microMuted = enabled
} }
ActionSwitch { ActionSwitch {
icon: 'speaker' icon: 'speaker'
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
onClicked: enabled = !enabled onClicked: enabled = !enabled
} }
ActionSwitch { ActionSwitch {
icon: 'camera' icon: 'camera'
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
onClicked: enabled = !enabled onClicked: enabled = !enabled
} }
ActionButton { ActionButton {
Layout.preferredHeight: CallStyle.iconSize Layout.preferredHeight: CallStyle.actionArea.iconSize
Layout.preferredWidth: CallStyle.iconSize Layout.preferredWidth: CallStyle.actionArea.iconSize
icon: 'options' icon: 'options' // TODO: display options.
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
} }
} }
Rectangle { Item {
anchors.centerIn: parent anchors.centerIn: parent
color: 'red' height: CallStyle.actionArea.userVideo.height
height: CallStyle.userVideo.height visible: incall.width >= CallStyle.actionArea.lowWidth && call.videoOutputEnabled
visible: incall.width >= 650 width: CallStyle.actionArea.userVideo.width
width: CallStyle.userVideo.width
} }
ActionBar { ActionBar {
anchors { anchors {
right: parent.right right: parent.right
rightMargin: CallStyle.rightButtonsGroupMargin rightMargin: CallStyle.actionArea.rightButtonsGroupMargin
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
ActionSwitch { ActionSwitch {
enabled: !call.pausedByUser enabled: !call.pausedByUser
......
...@@ -7,7 +7,7 @@ import App.Styles 1.0 ...@@ -7,7 +7,7 @@ import App.Styles 1.0
AbstractStartingCall { AbstractStartingCall {
ActionBar { ActionBar {
anchors.centerIn: parent anchors.centerIn: parent
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
ActionButton { ActionButton {
icon: 'video_call_accept' icon: 'video_call_accept'
...@@ -25,10 +25,10 @@ AbstractStartingCall { ...@@ -25,10 +25,10 @@ AbstractStartingCall {
ActionBar { ActionBar {
anchors { anchors {
right: parent.right right: parent.right
rightMargin: CallStyle.rightButtonsGroupMargin rightMargin: CallStyle.actionArea.rightButtonsGroupMargin
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
ActionButton { ActionButton {
icon: 'hangup' icon: 'hangup'
......
...@@ -10,26 +10,26 @@ import App.Styles 1.0 ...@@ -10,26 +10,26 @@ import App.Styles 1.0
AbstractStartingCall { AbstractStartingCall {
GridLayout { GridLayout {
columns: parent.width < CallStyle.lowWidth && call.videoOutputEnabled ? 1 : 2 columns: parent.width < CallStyle.actionArea.lowWidth && call.videoOutputEnabled ? 1 : 2
rowSpacing: ActionBarStyle.spacing rowSpacing: ActionBarStyle.spacing
anchors { anchors {
left: parent.left left: parent.left
leftMargin: CallStyle.leftButtonsGroupMargin leftMargin: CallStyle.actionArea.leftButtonsGroupMargin
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
ActionSwitch { ActionSwitch {
enabled: !call.microMuted enabled: !call.microMuted
icon: 'micro' icon: 'micro'
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
onClicked: call.microMuted = enabled onClicked: call.microMuted = enabled
} }
ActionSwitch { ActionSwitch {
icon: 'speaker' icon: 'speaker'
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
onClicked: enabled = !enabled onClicked: enabled = !enabled
} }
...@@ -37,8 +37,8 @@ AbstractStartingCall { ...@@ -37,8 +37,8 @@ AbstractStartingCall {
Item { Item {
anchors.centerIn: parent anchors.centerIn: parent
height: CallStyle.userVideo.height height: CallStyle.actionArea.userVideo.height
width: CallStyle.userVideo.width width: CallStyle.actionArea.userVideo.width
visible: call.videoOutputEnabled visible: call.videoOutputEnabled
} }
...@@ -46,10 +46,10 @@ AbstractStartingCall { ...@@ -46,10 +46,10 @@ AbstractStartingCall {
ActionBar { ActionBar {
anchors { anchors {
right: parent.right right: parent.right
rightMargin: CallStyle.rightButtonsGroupMargin rightMargin: CallStyle.actionArea.rightButtonsGroupMargin
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
iconSize: CallStyle.iconSize iconSize: CallStyle.actionArea.iconSize
ActionButton { ActionButton {
icon: 'hangup' icon: 'hangup'
......
...@@ -7,32 +7,41 @@ import Common 1.0 ...@@ -7,32 +7,41 @@ import Common 1.0
QtObject { QtObject {
property color backgroundColor: Colors.f property color backgroundColor: Colors.f
property int actionAreaHeight: 100
property int contactDescriptionHeight: 60 property QtObject actionArea: QtObject {
property int containerMargins: 20 property int height: 100
property int iconSize: 40 property int iconSize: 40
property int leftButtonsGroupMargin: 50 property int leftButtonsGroupMargin: 50
property int lowWidth: 415 property int lowWidth: 415
property int rightButtonsGroupMargin: 50 property int rightButtonsGroupMargin: 50
property QtObject userVideo: QtObject {
property int height: 90
property int width: 130
}
}
property QtObject container: QtObject {
property int margins: 20
property QtObject avatar: QtObject { property QtObject avatar: QtObject {
property color backgroundColor: Colors.w property color backgroundColor: Colors.w
property int maxSize: 300 property int maxSize: 300
} }
property QtObject busyIndicator: QtObject {
property color color: Colors.g
property int height: 30
property int width: 30
} }
property QtObject header: QtObject { property QtObject header: QtObject {
property int contactDescriptionHeight: 60
property int iconSize: 40
property int leftMargin: 20
property int rightMargin: 20
property int spacing: 10 property int spacing: 10
property int topMargin: 26 property int topMargin: 26
}
property QtObject userVideo: QtObject { property QtObject busyIndicator: QtObject {
property int height: 90 property color color: Colors.g
property int width: 130 property int height: 30
property int width: 30
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment