diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts index 9ff026fe2..7670abbaa 100644 --- a/linphone-app/assets/languages/da.ts +++ b/linphone-app/assets/languages/da.ts @@ -524,11 +524,6 @@ Server url ikke konfigureret. 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts index 94c69e0ad..88d317780 100644 --- a/linphone-app/assets/languages/de.ts +++ b/linphone-app/assets/languages/de.ts @@ -524,11 +524,6 @@ Server URL ist nicht konfiguriert. 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index 9c29f4267..e2c34e324 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -524,11 +524,6 @@ Server URL not configured. 'Description' : Title for the conference description. Description - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - Conference address - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index 641b4e808..61eec87f6 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -524,11 +524,6 @@ URL del servidor no configurada. 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index d0db7839c..ff41daf43 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -524,11 +524,6 @@ URL du serveur non configurée. 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts index 9e284bfc0..2db35b9a9 100644 --- a/linphone-app/assets/languages/hu.ts +++ b/linphone-app/assets/languages/hu.ts @@ -523,11 +523,6 @@ A kiszolgáló URL-je nincs konfigurálva. 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts index c645394aa..5c4b2250f 100644 --- a/linphone-app/assets/languages/it.ts +++ b/linphone-app/assets/languages/it.ts @@ -524,11 +524,6 @@ URL del server non configurato. 'Description' : Title for the conference description. Descrizione - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - Indirizzo conferenza - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts index cc9d65a44..943b53944 100644 --- a/linphone-app/assets/languages/ja.ts +++ b/linphone-app/assets/languages/ja.ts @@ -523,11 +523,6 @@ 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts index 7d0f96230..e74598a8b 100644 --- a/linphone-app/assets/languages/lt.ts +++ b/linphone-app/assets/languages/lt.ts @@ -525,11 +525,6 @@ Nesukonfigūruotas serverio url. 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts index df9d627bc..f8de63a3a 100644 --- a/linphone-app/assets/languages/pt_BR.ts +++ b/linphone-app/assets/languages/pt_BR.ts @@ -524,11 +524,6 @@ URL do servidor não configurado. 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts index 82d4c8abe..438cda2c3 100644 --- a/linphone-app/assets/languages/ru.ts +++ b/linphone-app/assets/languages/ru.ts @@ -525,11 +525,6 @@ 'Description' : Title for the conference description. Описание - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - Адрес конференции - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts index 3c34f2e25..836bb662e 100644 --- a/linphone-app/assets/languages/sv.ts +++ b/linphone-app/assets/languages/sv.ts @@ -524,11 +524,6 @@ Serverwebbadressen är inte konfigurerad. 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts index 18dc969d0..5db3385f5 100644 --- a/linphone-app/assets/languages/tr.ts +++ b/linphone-app/assets/languages/tr.ts @@ -523,11 +523,6 @@ Sunucu url'si yapılandırılmadı. 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts index b522e7e9f..3daf9c27b 100644 --- a/linphone-app/assets/languages/uk.ts +++ b/linphone-app/assets/languages/uk.ts @@ -525,11 +525,6 @@ 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts index c850e3d03..0d841d6a8 100644 --- a/linphone-app/assets/languages/zh_CN.ts +++ b/linphone-app/assets/languages/zh_CN.ts @@ -523,11 +523,6 @@ 'Description' : Title for the conference description. - - icsconferenceAddressTitle - 'Conference address' : Title for the conference address. - - icsJoinButton 'Join' : Action button to join the conference. diff --git a/linphone-app/resources.qrc b/linphone-app/resources.qrc index 8eafdeeae..2a06d1bc4 100644 --- a/linphone-app/resources.qrc +++ b/linphone-app/resources.qrc @@ -291,6 +291,7 @@ ui/modules/Common/Styles/qmldir ui/modules/Common/Styles/Tooltip/TooltipStyle.qml ui/modules/Common/Styles/Window/WindowStyle.qml + ui/modules/Common/Text/Text.qml ui/modules/Common/Tooltip/TooltipArea.qml ui/modules/Common/Tooltip/Tooltip.qml ui/modules/Common/View/ScrollableListView.qml diff --git a/linphone-app/src/components/other/colors/ColorListModel.hpp b/linphone-app/src/components/other/colors/ColorListModel.hpp index af8d0153f..8886e751b 100644 --- a/linphone-app/src/components/other/colors/ColorListModel.hpp +++ b/linphone-app/src/components/other/colors/ColorListModel.hpp @@ -216,9 +216,9 @@ class ColorListModel : public ProxyListModel { ADD_COLOR("me_p_b_bg", "transparent", "[M] Menu pressed button : background") ADD_COLOR_WITH_LINK("me_u_b_bg", "", "[M] Menu updating button : background", "me_p_b_bg") - ADD_COLOR("me_n_b_fg", "#96A5B1", "[M] Menu normal button : foreground") + ADD_COLOR("me_n_b_fg", "#4B5964", "[M] Menu normal button : foreground") ADD_COLOR("me_d_b_fg", "#8096A5B1", "[M] Menu disabled button : foreground") - ADD_COLOR("me_h_b_fg", "#4B5964", "[M] Menu hovered button : foreground") + ADD_COLOR("me_h_b_fg", "#96A5B1", "[M] Menu hovered button : foreground") ADD_COLOR("me_p_b_fg", "#FF5E00", "[M] Menu pressed button : foreground") ADD_COLOR_WITH_LINK("me_u_b_fg", "", "[M] Menu updating button : background", "me_p_b_fg") // Inverse diff --git a/linphone-app/ui/modules/Common/Form/Fields/TextAreaField.qml b/linphone-app/ui/modules/Common/Form/Fields/TextAreaField.qml index a4a6c6722..285e0c6b8 100644 --- a/linphone-app/ui/modules/Common/Form/Fields/TextAreaField.qml +++ b/linphone-app/ui/modules/Common/Form/Fields/TextAreaField.qml @@ -17,6 +17,7 @@ Rectangle { property alias readOnly: textArea.readOnly property int padding: TextAreaFieldStyle.text.padding property alias implicitHeight: flickable.contentHeight + property int fitWidth: 0 height: TextAreaFieldStyle.background.height width: TextAreaFieldStyle.background.width @@ -30,7 +31,22 @@ Rectangle { : TextAreaFieldStyle.background.color.normal radius: TextAreaFieldStyle.background.radius - +// Fit Width computation + onTextChanged:{ + var lines = text.split('\n') + var totalWidth = 0 + for(var index in lines){ + metrics.text = lines[index] + if( totalWidth < metrics.width) + totalWidth = metrics.width + } + fitWidth = totalWidth + } + TextMetrics{ + id: metrics + font: mainItem.font + } +//----------------------------------- Flickable { id: flickable anchors.fill: parent @@ -39,9 +55,11 @@ Rectangle { ScrollBar.vertical: ForceScrollBar { id: scrollBar - policy: flickable.contentHeight > flickable.height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff + //policy: flickable.contentHeight > height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff // Do not use because of binding loop issues + contentSizeTarget: flickable.contentHeight + sizeTarget: flickable.height + Component.onCompleted: updatePolicy() } - TextArea.flickable: TextArea { id: textArea diff --git a/linphone-app/ui/modules/Common/Misc/ForceScrollBar.qml b/linphone-app/ui/modules/Common/Misc/ForceScrollBar.qml index 48c1e3661..c6ccfa812 100644 --- a/linphone-app/ui/modules/Common/Misc/ForceScrollBar.qml +++ b/linphone-app/ui/modules/Common/Misc/ForceScrollBar.qml @@ -8,23 +8,42 @@ import Common.Styles 1.0 // ============================================================================= ScrollBar { - id: scrollBar - - background: Rectangle { - anchors.fill: parent - color: ForceScrollBarStyle.background.color - radius: ForceScrollBarStyle.background.radius - } - contentItem: Rectangle { - color: scrollBar.pressed - ? ForceScrollBarStyle.color.pressed - : (scrollBar.hovered - ? ForceScrollBarStyle.color.hovered - : ForceScrollBarStyle.color.normal - ) - implicitHeight: ForceScrollBarStyle.contentItem.implicitHeight - implicitWidth: ForceScrollBarStyle.contentItem.implicitWidth - radius: ForceScrollBarStyle.contentItem.radius - } - hoverEnabled: true + id: scrollBar + property int contentSizeTarget + property int sizeTarget + + onContentSizeTargetChanged: delayUpdatePolicy.restart() + onSizeTargetChanged: delayUpdatePolicy.restart() + + policy: ScrollBar.AlwaysOff + function updatePolicy(){ + policy = contentSizeTarget > sizeTarget ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff + } + function delayPolicy(){ + delayUpdatePolicy.restart() + } + Component.onCompleted: updatePolicy() + Timer{// Delay to avoid binding loops + id:delayUpdatePolicy + interval:10 + onTriggered: scrollBar.updatePolicy() + } + + background: Rectangle { + anchors.fill: parent + color: ForceScrollBarStyle.background.color + radius: ForceScrollBarStyle.background.radius + } + contentItem: Rectangle { + color: scrollBar.pressed + ? ForceScrollBarStyle.color.pressed + : (scrollBar.hovered + ? ForceScrollBarStyle.color.hovered + : ForceScrollBarStyle.color.normal + ) + implicitHeight: ForceScrollBarStyle.contentItem.implicitHeight + implicitWidth: ForceScrollBarStyle.contentItem.implicitWidth + radius: ForceScrollBarStyle.contentItem.radius + } + hoverEnabled: true } diff --git a/linphone-app/ui/modules/Common/Text/Text.qml b/linphone-app/ui/modules/Common/Text/Text.qml new file mode 100644 index 000000000..86232848a --- /dev/null +++ b/linphone-app/ui/modules/Common/Text/Text.qml @@ -0,0 +1,30 @@ +import QtQuick 2.7 as QtQuick +import QtQuick.Controls 2.2 + +import Common.Styles 1.0 + + +QtQuick.Text { + id: mainItem + property bool computeFitWidth: false // Avoid doing computations if not needed + property int fitWidth: 0 + + // Fit Width computation + onTextChanged:{ + if(computeFitWidth) { + var lines = text.split('\n') + var totalWidth = 0 + for(var index in lines){ + metrics.text = lines[index] + if( totalWidth < metrics.width) + totalWidth = metrics.width + } + fitWidth = totalWidth + } + } + QtQuick.TextMetrics{ + id: metrics + font: mainItem.font + } +//----------------------------------- +} diff --git a/linphone-app/ui/modules/Common/View/ScrollableListView.qml b/linphone-app/ui/modules/Common/View/ScrollableListView.qml index 1825036b1..984f0ca0a 100644 --- a/linphone-app/ui/modules/Common/View/ScrollableListView.qml +++ b/linphone-app/ui/modules/Common/View/ScrollableListView.qml @@ -39,33 +39,15 @@ ListView { ScrollBar.vertical: ForceScrollBar { id: vScrollBar onPressedChanged: pressed ? view.movementStarted() : view.movementEnded() - // ScrollBar.AsNeeded doesn't work. Do it ourself. - policy: ScrollBar.AlwaysOff - function updatePolicy(){ - policy = (view.orientation == Qt.Vertical && view.contentHeight > view.height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff) - } - Timer{// Delay to avoid binding loops - id:delayUpdateVPolicy - interval:10 - onTriggered: vScrollBar.updatePolicy() - } - Component.onCompleted: if(!hideScrollBars) updatePolicy() + contentSizeTarget: view.contentHeight + sizeTarget: view.height } ScrollBar.horizontal: ForceScrollBar { id: hScrollBar onPressedChanged: pressed ? view.movementStarted() : view.movementEnded() - // ScrollBar.AsNeeded doesn't work. Do it ourself. - policy: ScrollBar.AlwaysOff - function updatePolicy() { - policy = (view.orientation == Qt.Horizontal && view.contentWidth > view.width? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff) - } - Timer{// Delay to avoid binding loops - id:delayUpdateHPolicy - interval:10 - onTriggered: hScrollBar.updatePolicy() - } - Component.onCompleted: if(!hideScrollBars) updatePolicy() + contentSizeTarget: view.contentWidth + sizeTarget: view.width } // --------------------------------------------------------------------------- boundsMovement: Flickable.StopAtBounds @@ -77,15 +59,7 @@ ListView { synchronousDrag: true onContentHeightChanged: { cacheBuffer= (view.contentHeight > 0 ? view.contentHeight : 0) - if(!hideScrollBars) - delayUpdateVPolicy.restart() } - onHeightChanged: { - if(!hideScrollBars) - delayUpdateVPolicy.restart() - } - onContentWidthChanged: if(!hideScrollBars) delayUpdateHPolicy.restart() - onWidthChanged: if(!hideScrollBars) delayUpdateHPolicy.restart() cacheBuffer: height > 0 ? height : 0 // --------------------------------------------------------------------------- diff --git a/linphone-app/ui/modules/Common/qmldir b/linphone-app/ui/modules/Common/qmldir index 0820bdc7f..0974817b8 100644 --- a/linphone-app/ui/modules/Common/qmldir +++ b/linphone-app/ui/modules/Common/qmldir @@ -93,6 +93,8 @@ DesktopPopup 1.0 Popup/DesktopPopup.qml Popup 1.0 Popup/Popup.qml PopupShadow 1.0 Popup/PopupShadow.qml +Text 1.0 Text/Text.qml + TooltipArea 1.0 Tooltip/TooltipArea.qml ToolTip 1.0 Tooltip/Tooltip.qml diff --git a/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml b/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml index b6759e0c5..0e942b46a 100644 --- a/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml +++ b/linphone-app/ui/modules/Linphone/Chat/ChatCalendarMessage.qml @@ -135,7 +135,7 @@ Loader{ id: participantsRow Layout.fillWidth: true Layout.fillHeight: true - Layout.minimumHeight: mainItem.isExpanded ? expandedParticipantsList.minimumHeight : ChatCalendarMessageStyle.lineHeight + Layout.minimumHeight: 4 + (mainItem.isExpanded ? expandedParticipantsList.minimumHeight : ChatCalendarMessageStyle.lineHeight) Layout.alignment: Qt.AlignTop Layout.leftMargin: 5 Layout.rightMargin: 10 @@ -148,7 +148,8 @@ Loader{ Layout.alignment: Qt.AlignTop clip: false Icon{ - anchors.centerIn: parent + anchors.top: parent.top + anchors.horizontalCenter: parent.horizontalCenter icon: ChatCalendarMessageStyle.participants.icon iconSize: ChatCalendarMessageStyle.participants.iconSize overwriteColor: ChatCalendarMessageStyle.participants.color @@ -159,6 +160,7 @@ Loader{ id: participantsList Layout.fillWidth: true Layout.preferredHeight: ChatCalendarMessageStyle.lineHeight + Layout.topMargin: 4 Layout.alignment: Qt.AlignTop visible: !mainItem.isExpanded color: ChatCalendarMessageStyle.participants.color @@ -170,6 +172,7 @@ Loader{ id: expandedParticipantsList property int minimumHeight: Math.min( count * ChatCalendarMessageStyle.lineHeight, layout.height/(descriptionTitle.visible?3:2)) Layout.fillWidth: true + Layout.topMargin: 4 Layout.minimumHeight: minimumHeight Layout.alignment: Qt.AlignTop spacing: 0 diff --git a/linphone-app/ui/modules/Linphone/Chat/ChatConferenceInvitationMessage.qml b/linphone-app/ui/modules/Linphone/Chat/ChatConferenceInvitationMessage.qml index c9d74a65e..40c2e83a8 100644 --- a/linphone-app/ui/modules/Linphone/Chat/ChatConferenceInvitationMessage.qml +++ b/linphone-app/ui/modules/Linphone/Chat/ChatConferenceInvitationMessage.qml @@ -26,8 +26,8 @@ Loader{ property ContentModel contentModel property ConferenceInfoModel conferenceInfoModel: contentModel ? contentModel.conferenceInfoModel : null property int maxWidth : parent.width - property int fitHeight: active && item ? item.fitHeight + ChatCalendarMessageStyle.topMargin+ChatCalendarMessageStyle.bottomMargin + (isExpanded? 200 : 0): 0 - property int fitWidth: active && item ? item.fitWidth + ChatCalendarMessageStyle.widthMargin*2 : 0 + property int fitHeight: active && item ? item.fitHeight + (isExpanded? 200 : 0): 0 + property int fitWidth: active && item ? Math.min(maxWidth, item.fitWidth + ChatCalendarMessageStyle.widthMargin*2) : 0 property bool containsMouse: false property int gotoButtonMode: -1 //-1: hide, 0:goto, 1:MoreInfo property bool isExpanded : false @@ -60,25 +60,26 @@ Loader{ ColumnLayout{ id: layout - property int fitHeight: Layout.minimumHeight + (description.visible?description.implicitHeight + 5: 0) - property int fitWidth: (editButton.visible?editButton.width:0) + copyButton.width + joinButton.width + linkTitle.implicitWidth + property int fitHeight: Layout.minimumHeight + (description.visible?description.implicitHeight + 5: 5) + property int fitWidth: Math.max(shareButton.width + joinButton.width, description.fitWidth) anchors.fill: parent spacing: 0 Text{ Layout.fillWidth: true - Layout.topMargin: 10 - Layout.leftMargin: 10 + Layout.topMargin: 5 + Layout.leftMargin: 5 Layout.alignment: Qt.AlignRight elide: Text.ElideRight - color: ChatCalendarMessageStyle.subject.color - font.pointSize: ChatCalendarMessageStyle.subject.pointSize + color: ChatCalendarMessageStyle.type.color + font.pointSize: ChatCalendarMessageStyle.type.pointSize + font.weight: Font.Bold //: 'Meeting invite' : ICS title that is an invitation. - text: qsTr('icsMeetingInvite') +': ' + UtilsCpp.getDisplayName(mainItem.conferenceInfoModel.organizer) + text: qsTr('icsMeetingInvite') +': '// + UtilsCpp.getDisplayName(mainItem.conferenceInfoModel.organizer) } Text{ id: title Layout.fillWidth: true - Layout.leftMargin: 10 + Layout.leftMargin: 5 Layout.alignment: Qt.AlignRight elide: Text.ElideRight color: ChatCalendarMessageStyle.subject.color @@ -112,59 +113,59 @@ Loader{ text: qsTr('icsParticipants', '', participantCount).arg(participantCount) } } - - RowLayout { - id: dateRow + ColumnLayout{ Layout.fillWidth: true - Layout.preferredHeight: ChatCalendarMessageStyle.calendar.iconSize Layout.leftMargin: 5 Layout.rightMargin: 15 - - spacing: ChatCalendarMessageStyle.calendar.spacing - - Icon{ - icon: ChatCalendarMessageStyle.calendar.icon - iconSize: ChatCalendarMessageStyle.calendar.iconSize - overwriteColor: ChatCalendarMessageStyle.calendar.color - } - - Text { - id: conferenceDate + spacing: 0 + RowLayout { + id: dateRow Layout.fillWidth: true - Layout.minimumWidth: implicitWidth - verticalAlignment: Qt.AlignVCenter - color: ChatCalendarMessageStyle.schedule.color - elide: Text.ElideRight - font.pointSize: ChatCalendarMessageStyle.calendar.pointSize - text: Qt.formatDate(mainItem.conferenceInfoModel.dateTimeUtc, 'yyyy/MM/dd') + Layout.preferredHeight: conferenceDate.implicitHeight + spacing: ChatCalendarMessageStyle.calendar.spacing + + Icon{ + icon: ChatCalendarMessageStyle.calendar.icon + iconSize: ChatCalendarMessageStyle.calendar.iconSize-2 + overwriteColor: ChatCalendarMessageStyle.calendar.color + } + + Text { + id: conferenceDate + Layout.fillWidth: true + Layout.minimumWidth: implicitWidth + verticalAlignment: Qt.AlignVCenter + color: ChatCalendarMessageStyle.schedule.color + elide: Text.ElideRight + font.pointSize: Units.dp * 8 + text: Qt.formatDate(mainItem.conferenceInfoModel.dateTimeUtc, 'yyyy/MM/dd') + } } - } - RowLayout { - id: conferenceTimeRow - Layout.fillWidth: true - Layout.preferredHeight: ChatCalendarMessageStyle.schedule.iconSize - Layout.leftMargin: 5 - Layout.rightMargin: 15 - - spacing: ChatCalendarMessageStyle.schedule.spacing - - Icon{ - icon: ChatCalendarMessageStyle.schedule.icon - iconSize: ChatCalendarMessageStyle.schedule.iconSize - overwriteColor: ChatCalendarMessageStyle.schedule.color - } - - Text { - id: conferenceTime + RowLayout { + id: conferenceTimeRow Layout.fillWidth: true - Layout.minimumWidth: implicitWidth - verticalAlignment: Qt.AlignVCenter - color: ChatCalendarMessageStyle.schedule.color - elide: Text.ElideRight - font.pointSize: ChatCalendarMessageStyle.schedule.pointSize - text: Qt.formatDateTime(mainItem.conferenceInfoModel.dateTimeUtc, 'hh:mm') - + (mainItem.conferenceInfoModel.duration > 0 ? ' ('+Utils.formatDuration(mainItem.conferenceInfoModel.duration * 60) + ')' - : '') + Layout.preferredHeight: conferenceTime.implicitHeight + + spacing: ChatCalendarMessageStyle.schedule.spacing + + Icon{ + icon: ChatCalendarMessageStyle.schedule.icon + iconSize: ChatCalendarMessageStyle.schedule.iconSize-2 + overwriteColor: ChatCalendarMessageStyle.schedule.color + } + + Text { + id: conferenceTime + Layout.fillWidth: true + Layout.minimumWidth: implicitWidth + verticalAlignment: Qt.AlignVCenter + color: ChatCalendarMessageStyle.schedule.color + elide: Text.ElideRight + font.pointSize: Units.dp * 8 + text: Qt.formatDateTime(mainItem.conferenceInfoModel.dateTimeUtc, 'hh:mm') + + (mainItem.conferenceInfoModel.duration > 0 ? ' ('+Utils.formatDuration(mainItem.conferenceInfoModel.duration * 60) + ')' + : '') + } } } ColumnLayout{ @@ -205,7 +206,7 @@ Loader{ Text{ id: descriptionTitle Layout.fillWidth: true - Layout.leftMargin: 10 + Layout.leftMargin: 5 Layout.topMargin: 5 color: ChatCalendarMessageStyle.subject.color font.pointSize: ChatCalendarMessageStyle.subject.pointSize @@ -218,7 +219,7 @@ Loader{ id: description Layout.fillWidth: true Layout.fillHeight: true - Layout.leftMargin: 10 + Layout.leftMargin: 5 padding: 0 color: 'transparent' readOnly: true @@ -233,39 +234,25 @@ Loader{ Layout.fillHeight: true Layout.fillWidth: true } - Text{ - id: linkTitle - Layout.fillWidth: true - Layout.leftMargin: 10 - color: ChatCalendarMessageStyle.subject.color - font.pointSize: ChatCalendarMessageStyle.subject.pointSize - font.weight: Font.Bold - - //: 'Conference address' : Title for the conference address. - text: qsTr('icsconferenceAddressTitle') - } RowLayout{ Layout.fillWidth: true Layout.fillHeight: true - Layout.leftMargin: 10 - Layout.rightMargin: 10 + Layout.topMargin: ChatCalendarMessageStyle.bottomMargin + Layout.leftMargin: 5 + Layout.rightMargin: 5 spacing: 10 - TextField{ - id: uriField - readOnly: true + Item{ + Layout.fillHeight: true Layout.fillWidth: true - textFieldStyle: TextFieldStyle.flatInverse - text: mainItem.conferenceInfoModel.uri - } ActionButton{ - id: copyButton - iconSize: uriField.height + id: shareButton + iconSize: joinButton.height/2 isCustom: true - colorSet: ChatCalendarMessageStyle.copyLinkButton + colorSet: ChatCalendarMessageStyle.shareButton backgroundRadius: width/2 onClicked: { - Clipboard.text = uriField.text + Clipboard.text = mainItem.conferenceInfoModel.uri mainItem.conferenceUriCopied() } } @@ -275,18 +262,6 @@ Loader{ text: qsTr('icsJoinButton').toUpperCase() onClicked: CallsListModel.prepareConferenceCall(mainItem.conferenceInfoModel) } - ActionButton{ - id: editButton - isCustom: true - colorSet: ChatCalendarMessageStyle.editButton - backgroundRadius: width/2 - visible: UtilsCpp.isMe(mainItem.conferenceInfoModel.organizer) - onClicked: { - window.detachVirtualWindow() - window.attachVirtualWindow(Utils.buildAppDialogUri('NewConference') - ,{conferenceInfoModel: mainItem.conferenceInfoModel}) - } - } } } } diff --git a/linphone-app/ui/modules/Linphone/Chat/ChatReplyPreview.qml b/linphone-app/ui/modules/Linphone/Chat/ChatReplyPreview.qml index b7eeddd74..7a096d0de 100644 --- a/linphone-app/ui/modules/Linphone/Chat/ChatReplyPreview.qml +++ b/linphone-app/ui/modules/Linphone/Chat/ChatReplyPreview.qml @@ -76,7 +76,7 @@ Rectangle{ contentHeight: messageContentsList.height contentWidth: width - ScrollBar.vertical.width flickableDirection: Flickable.VerticalFlick - + clip: true Layout.fillHeight: true Layout.fillWidth: true ListView { @@ -87,7 +87,7 @@ Rectangle{ chatMessageModel: replyPreviewBlock.chatRoomModel && replyPreviewBlock.chatRoomModel.reply } height: contentHeight - + clip: true delegate: ChatContent{ contentModel: $modelData Rectangle{ diff --git a/linphone-app/ui/modules/Linphone/Styles/Chat/ChatCalendarMessageStyle.qml b/linphone-app/ui/modules/Linphone/Styles/Chat/ChatCalendarMessageStyle.qml index c1e089b0b..370ad24dc 100644 --- a/linphone-app/ui/modules/Linphone/Styles/Chat/ChatCalendarMessageStyle.qml +++ b/linphone-app/ui/modules/Linphone/Styles/Chat/ChatCalendarMessageStyle.qml @@ -53,6 +53,11 @@ QtObject { property int iconSize: 30 property color color: ColorsList.add(sectionName+'_schedule', 'j').color } + property QtObject type: QtObject { + property int spacing: 5 + property int pointSize: Units.dp * 10 + property color color: ColorsList.add(sectionName+'_subject', 'j').color + } property QtObject subject: QtObject { property int spacing: 5 property int pointSize: Units.dp * 11 @@ -67,7 +72,7 @@ QtObject { property int spacing: 5 property int pointSize: Units.dp * 9 property string icon : 'calendar_participants_custom' - property int iconSize: 30 + property int iconSize: 25 property color color: ColorsList.add(sectionName+'_participants', 'j').color } @@ -85,7 +90,7 @@ QtObject { property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_f_c', icon, 's_p_b_fg').color } property QtObject infoButton: QtObject{ - property int iconSize: 30 + property int iconSize: 25 property string name : 'info' property string icon : 'menu_info_custom' property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_b_n', icon, 'me_n_b_bg').color @@ -114,6 +119,19 @@ QtObject { property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_f_h', icon, 's_h_b_fg').color property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_f_p', icon, 's_p_b_fg').color } + property QtObject shareButton: QtObject{ + property int iconSize: 40 + property string name : 'share' + property string icon : 'settings_network_custom' + property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_b_n', icon, 'me_n_b_bg').color + property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_b_h', icon, 'me_h_b_bg').color + property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_b_p', icon, 'me_p_b_bg').color + property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_f_n', icon, 'me_n_b_fg').color + property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_f_h', icon, 'me_h_b_fg').color + property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_f_p', icon, 'me_p_b_fg').color + } + + property QtObject editButton: QtObject{ property int iconSize: 40 property string name : 'edit'