linphone-desktop/ui/modules/Linphone/Contact/MessagesCounter.qml
2017-06-26 19:38:08 +02:00

63 lines
1.5 KiB
QML

import QtQuick 2.7
import QtQuick.Layouts 1.3
import Common 1.0
import Linphone.Styles 1.0
// =============================================================================
Item {
id: messagesCounter
property int count
property bool isComposing
implicitHeight: counterIcon.height + MessagesCounterStyle.verticalMargins * 2
implicitWidth: counterIcon.width + MessagesCounterStyle.horizontalMargins * 2
Icon {
id: counterIcon
property int composingIndex: 0
anchors.centerIn: parent
icon: messagesCounter.isComposing
? ('chat_is_composing_' + counterIcon.composingIndex)
: 'chat_count'
iconSize: MessagesCounterStyle.iconSize.message
visible: messagesCounter.count > 0 || messagesCounter.isComposing
Icon {
anchors {
horizontalCenter: parent.right
verticalCenter: parent.bottom
}
icon: 'chat_amount'
iconSize: MessagesCounterStyle.iconSize.amount
visible: messagesCounter.count > 0
Text {
anchors.centerIn: parent
color: MessagesCounterStyle.text.color
font.pointSize: MessagesCounterStyle.text.pointSize
text: messagesCounter.count
}
}
Timer {
interval: 500
repeat: true
running: messagesCounter.isComposing
onRunningChanged: {
if (running) {
counterIcon.composingIndex = 0
}
}
onTriggered: counterIcon.composingIndex = (counterIcon.composingIndex + 1) % 4
}
}
}