From 721196a2a275ed3a957666de4f09d2bc62b387c3 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Fri, 17 Jun 2022 12:13:06 +0200 Subject: [PATCH] Update active dialpad, copy, speaker and grid layout icons. Add file icon with extension in chats. Change file message design to show empty icon with extension and download link. Update SDK. --- .../conference_layout_active_speaker.svg | 306 --------- ...onference_layout_active_speaker_custom.svg | 97 +-- .../assets/images/conference_layout_grid.svg | 636 ------------------ .../images/conference_layout_grid_custom.svg | 169 ++--- linphone-app/assets/images/copy_custom.svg | 54 -- linphone-app/assets/images/dialpad_custom.svg | 153 +++-- .../assets/images/file_extension_custom.svg | 49 ++ .../assets/images/file_unknown_custom.svg | 12 + .../assets/images/ics_copy_custom.svg | 46 -- .../assets/images/menu_copy_text_custom.svg | 38 +- .../assets/images/tel_keypad_custom.svg | 142 ---- linphone-app/resources.qrc | 6 +- .../Common/Styles/Misc/MessageBannerStyle.qml | 2 +- .../modules/Linphone/Chat/ChatFileMessage.qml | 478 ++++++------- .../Styles/Chat/ChatCalendarMessageStyle.qml | 2 +- .../Linphone/Styles/Chat/ChatStyle.qml | 21 +- .../App/Styles/Calls/CallFullscreenStyle.qml | 2 +- .../ui/views/App/Styles/Calls/CallStyle.qml | 2 +- .../views/App/Styles/Main/MainWindowStyle.qml | 4 +- .../Styles/Settings/SettingsWindowStyle.qml | 2 +- linphone-sdk | 2 +- 21 files changed, 547 insertions(+), 1676 deletions(-) delete mode 100644 linphone-app/assets/images/conference_layout_active_speaker.svg delete mode 100644 linphone-app/assets/images/conference_layout_grid.svg delete mode 100644 linphone-app/assets/images/copy_custom.svg create mode 100644 linphone-app/assets/images/file_extension_custom.svg create mode 100644 linphone-app/assets/images/file_unknown_custom.svg delete mode 100644 linphone-app/assets/images/ics_copy_custom.svg delete mode 100644 linphone-app/assets/images/tel_keypad_custom.svg diff --git a/linphone-app/assets/images/conference_layout_active_speaker.svg b/linphone-app/assets/images/conference_layout_active_speaker.svg deleted file mode 100644 index 499d92007..000000000 --- a/linphone-app/assets/images/conference_layout_active_speaker.svg +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/linphone-app/assets/images/conference_layout_active_speaker_custom.svg b/linphone-app/assets/images/conference_layout_active_speaker_custom.svg index 08fa0bcab..ae51c36b2 100644 --- a/linphone-app/assets/images/conference_layout_active_speaker_custom.svg +++ b/linphone-app/assets/images/conference_layout_active_speaker_custom.svg @@ -3,16 +3,19 @@ width="80" height="80" viewBox="0 0 80 80" + fill="none" version="1.1" - id="svg16" + id="svg12" sodipodi:docname="conference_layout_active_speaker_custom.svg" inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> + - - - - - - - - - - - - + inkscape:current-layer="svg12" /> + + + + + diff --git a/linphone-app/assets/images/conference_layout_grid.svg b/linphone-app/assets/images/conference_layout_grid.svg deleted file mode 100644 index a767ee262..000000000 --- a/linphone-app/assets/images/conference_layout_grid.svg +++ /dev/null @@ -1,636 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/linphone-app/assets/images/conference_layout_grid_custom.svg b/linphone-app/assets/images/conference_layout_grid_custom.svg index 52a8c5855..0033bb540 100644 --- a/linphone-app/assets/images/conference_layout_grid_custom.svg +++ b/linphone-app/assets/images/conference_layout_grid_custom.svg @@ -3,16 +3,19 @@ width="80" height="80" viewBox="0 0 80 80" + fill="none" version="1.1" - id="svg26" + id="svg14" sodipodi:docname="conference_layout_grid_custom.svg" inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> + - - - - - - - - - - - - - - - - - - - - + inkscape:current-layer="svg14" /> + + + + + + diff --git a/linphone-app/assets/images/copy_custom.svg b/linphone-app/assets/images/copy_custom.svg deleted file mode 100644 index 719dfe8cc..000000000 --- a/linphone-app/assets/images/copy_custom.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - diff --git a/linphone-app/assets/images/dialpad_custom.svg b/linphone-app/assets/images/dialpad_custom.svg index 0f223f2e9..cc3128483 100644 --- a/linphone-app/assets/images/dialpad_custom.svg +++ b/linphone-app/assets/images/dialpad_custom.svg @@ -2,18 +2,20 @@ + id="defs18" /> - - - - - - - - - - + inkscape:zoom="6.6693026" + inkscape:cx="19.567263" + inkscape:cy="46.031799" + inkscape:window-width="1920" + inkscape:window-height="1043" + inkscape:window-x="1920" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="svg14" /> + + + + + + + + + diff --git a/linphone-app/assets/images/file_extension_custom.svg b/linphone-app/assets/images/file_extension_custom.svg new file mode 100644 index 000000000..3810ce8b3 --- /dev/null +++ b/linphone-app/assets/images/file_extension_custom.svg @@ -0,0 +1,49 @@ + + + + + + + + + + diff --git a/linphone-app/assets/images/file_unknown_custom.svg b/linphone-app/assets/images/file_unknown_custom.svg new file mode 100644 index 000000000..20a5d90e2 --- /dev/null +++ b/linphone-app/assets/images/file_unknown_custom.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/linphone-app/assets/images/ics_copy_custom.svg b/linphone-app/assets/images/ics_copy_custom.svg deleted file mode 100644 index 7f3336f28..000000000 --- a/linphone-app/assets/images/ics_copy_custom.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - diff --git a/linphone-app/assets/images/menu_copy_text_custom.svg b/linphone-app/assets/images/menu_copy_text_custom.svg index 6498ca958..7f3336f28 100644 --- a/linphone-app/assets/images/menu_copy_text_custom.svg +++ b/linphone-app/assets/images/menu_copy_text_custom.svg @@ -4,17 +4,17 @@ height="80" viewBox="0 0 80 80" version="1.1" - id="svg12" - sodipodi:docname="menu_copy_text_custom.svg" + id="svg6" + sodipodi:docname="ics_copy_custom.svg" inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> + id="defs10" /> + inkscape:current-layer="svg6" /> - + - - - - - - + id="path2" /> diff --git a/linphone-app/assets/images/tel_keypad_custom.svg b/linphone-app/assets/images/tel_keypad_custom.svg deleted file mode 100644 index ad948b56a..000000000 --- a/linphone-app/assets/images/tel_keypad_custom.svg +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - image/svg+xml - - dialer_dtmf - - - - - - dialer_dtmf - Created with Sketch. - - - - - - - - - - - - - - - - - - - diff --git a/linphone-app/resources.qrc b/linphone-app/resources.qrc index 81654483b..52e8ef4c4 100644 --- a/linphone-app/resources.qrc +++ b/linphone-app/resources.qrc @@ -56,7 +56,6 @@ assets/images/conference_custom.svg assets/images/conference_audio_only_custom.svg assets/images/conference_layout_grid_custom.svg - assets/images/conference_layout_grid.svg assets/images/conference_layout_active_speaker_custom.svg assets/images/contact_add_custom.svg assets/images/contact_card_photo_custom.svg @@ -64,7 +63,6 @@ assets/images/contact_delete_custom.svg assets/images/contact_edit_custom.svg assets/images/contact_view_custom.svg - assets/images/copy_custom.svg assets/images/current_account_status_online.svg assets/images/current_account_status_offline.svg assets/images/current_account_status_dnd.svg @@ -80,6 +78,8 @@ assets/images/expanded_custom.svg assets/images/file_custom.svg assets/images/file_sign.svg + assets/images/file_extension_custom.svg + assets/images/file_unknown_custom.svg assets/images/filter_custom.svg assets/images/filter_params_custom.svg assets/images/folder_custom.svg @@ -92,7 +92,6 @@ assets/images/home_custom.svg assets/images/home_invite_friends.svg assets/images/home_use_linphone.svg - assets/images/ics_copy_custom.svg assets/images/ics_edit_custom.svg assets/images/incoming_call_custom.svg assets/images/led_green.svg @@ -151,7 +150,6 @@ assets/images/speaker_on_custom.svg assets/images/stop_fullscreen_custom.svg assets/images/timer_custom.svg - assets/images/tel_keypad_custom.svg assets/images/tel_keypad_voicemail_custom.svg assets/images/tooltip_arrow_bottom_custom.svg assets/images/tooltip_arrow_left_custom.svg diff --git a/linphone-app/ui/modules/Common/Styles/Misc/MessageBannerStyle.qml b/linphone-app/ui/modules/Common/Styles/Misc/MessageBannerStyle.qml index d4348e2f1..5f22c52fd 100644 --- a/linphone-app/ui/modules/Common/Styles/Misc/MessageBannerStyle.qml +++ b/linphone-app/ui/modules/Common/Styles/Misc/MessageBannerStyle.qml @@ -8,7 +8,7 @@ import ColorsList 1.0 QtObject { property string sectionName: 'MessageBanner' - property string copyTextIcon : 'copy_custom' + property string copyTextIcon : 'menu_copy_text_custom' property color color: ColorsList.add(sectionName+'_message_banner', '', 'Background of message banner', '#9ecd1d').color property color textColor: ColorsList.add(sectionName+'_message_banner_text', 'q', 'Text of message banner').color property int pointSize: Units.dp * 9 diff --git a/linphone-app/ui/modules/Linphone/Chat/ChatFileMessage.qml b/linphone-app/ui/modules/Linphone/Chat/ChatFileMessage.qml index ec1be0409..f3e7ad5de 100644 --- a/linphone-app/ui/modules/Linphone/Chat/ChatFileMessage.qml +++ b/linphone-app/ui/modules/Linphone/Chat/ChatFileMessage.qml @@ -19,8 +19,8 @@ Row { property ChatMessageModel chatMessageModel: contentModel && contentModel.chatMessageModel property ContentModel contentModel property bool isOutgoing : chatMessageModel && ( chatMessageModel.isOutgoing || chatMessageModel.state == LinphoneEnums.ChatMessageStateIdle); - property int fitWidth: visible ? Math.max( (fileName.visible ? fileName.implicitWidth : 0) - + thumbnailProvider.width + 3*ChatStyle.entry.message.file.margins + property int fitWidth: visible ? Math.max( Math.max((thumbnailProvider.sourceComponent == extension ? thumbnailProvider.item.fitWidth : 0) + , thumbnailProvider.width + 3*ChatStyle.entry.message.file.margins) , Math.max(ChatStyle.entry.message.file.width, ChatStyle.entry.message.outgoing.areaSize)) : 0 property int fitHeight: visible ? rectangle.height : 0 @@ -36,217 +36,248 @@ Row { // File message. // --------------------------------------------------------------------------- - Row { - spacing: ChatStyle.entry.message.extraContent.leftMargin - Item{ - width: mainRow.width - height:rectangle.height + Item{ + width: mainRow.width + height:rectangle.height + + Rectangle { + id: rectangle - Rectangle { - id: rectangle + readonly property bool isError: chatMessageModel && Utils.includes([ + LinphoneEnums.ChatMessageStateFileTransferError, + LinphoneEnums.ChatMessageStateNotDelivered, + ], chatMessageModel.state) + readonly property bool isUploaded: chatMessageModel && chatMessageModel.state == LinphoneEnums.ChatMessageStateDelivered + readonly property bool isDelivered: chatMessageModel && chatMessageModel.state == LinphoneEnums.ChatMessageStateDeliveredToUser + readonly property bool isRead: chatMessageModel && chatMessageModel.state == LinphoneEnums.ChatMessageStateDisplayed + + property string thumbnail : mainRow.contentModel ? mainRow.contentModel.thumbnail : '' + color: 'transparent' + anchors.left: parent.left + anchors.top: parent.top + anchors.leftMargin: ChatStyle.entry.message.file.margins + anchors.topMargin: ChatStyle.entry.message.file.margins + height: 2*ChatStyle.entry.message.file.margins + (mainRow.isAnimatedImage ? ChatStyle.entry.message.file.heightbetter + : thumbnailProvider.sourceComponent == extension ? thumbnailProvider.item.fitHeight + : ChatStyle.entry.message.file.height + ) + width: mainRow.width + + radius: ChatStyle.entry.message.radius + + // --------------------------------------------------------------------- + // Thumbnail or extension. + // --------------------------------------------------------------------- + + Component { + id: thumbnailImage - readonly property bool isError: chatMessageModel && Utils.includes([ - LinphoneEnums.ChatMessageStateFileTransferError, - LinphoneEnums.ChatMessageStateNotDelivered, - ], chatMessageModel.state) - readonly property bool isUploaded: chatMessageModel && chatMessageModel.state == LinphoneEnums.ChatMessageStateDelivered - readonly property bool isDelivered: chatMessageModel && chatMessageModel.state == LinphoneEnums.ChatMessageStateDeliveredToUser - readonly property bool isRead: chatMessageModel && chatMessageModel.state == LinphoneEnums.ChatMessageStateDisplayed - - property string thumbnail : mainRow.contentModel ? mainRow.contentModel.thumbnail : '' - color: 'transparent' - - height: mainRow.isAnimatedImage ? ChatStyle.entry.message.file.heightbetter : ChatStyle.entry.message.file.height - width: mainRow.width - - radius: ChatStyle.entry.message.radius - - RowLayout { - anchors { - fill: parent - margins: ChatStyle.entry.message.file.margins - } - - spacing: ChatStyle.entry.message.file.spacing - - - // --------------------------------------------------------------------- - // Thumbnail or extension. - // --------------------------------------------------------------------- - - Component { - id: thumbnailImage - - Image { - id: thumbnailImageSource - property real scaleAnimatorTo : ChatStyle.entry.message.file.animation.thumbnailTo + Image { + id: thumbnailImageSource + property real scaleAnimatorTo : ChatStyle.entry.message.file.animation.thumbnailTo + mipmap: SettingsModel.mipmapEnabled + source: mainRow.contentModel.thumbnail + fillMode: Image.PreserveAspectFit + height: ChatStyle.entry.message.file.height + width: height*4/3 + Loader{ + anchors.fill: parent + sourceComponent: Image{// Better quality on zoom mipmap: SettingsModel.mipmapEnabled - source: mainRow.contentModel.thumbnail - fillMode: Image.PreserveAspectFit - Loader{ - anchors.fill: parent - sourceComponent: Image{// Better quality on zoom - mipmap: SettingsModel.mipmapEnabled - source:'file:/'+mainRow.contentModel.filePath - fillMode: Image.PreserveAspectFit - visible: status == Image.Ready - } - asynchronous: true - active: thumbnailProvider.state == 'hovered' - } - } - } - Component { - id: animatedImage - - AnimatedImage { - id: animatedImageSource - property real scaleAnimatorTo : ChatStyle.entry.message.file.animation.to - mipmap: SettingsModel.mipmapEnabled - source: 'file:/'+mainRow.contentModel.filePath + source:'file:/'+mainRow.contentModel.filePath fillMode: Image.PreserveAspectFit + visible: status == Image.Ready } + asynchronous: true + active: thumbnailProvider.state == 'hovered' } + } + } + Component { + id: animatedImage + + AnimatedImage { + id: animatedImageSource + property real scaleAnimatorTo : ChatStyle.entry.message.file.animation.to + mipmap: SettingsModel.mipmapEnabled + source: 'file:/'+mainRow.contentModel.filePath + fillMode: Image.PreserveAspectFit + height: ChatStyle.entry.message.file.heightbetter + width: height*4/3 + } + } + + Component { + id: extension + + Rectangle { + property int fitWidth: Math.max(downloadText.implicitWidth, Math.max(fileName.visible ? fileName.implicitWidth : 0, fileIcon.iconSize)) + 20 + property int fitHeight: fileIcon.iconSize + (fileName.visible ? fileName.implicitHeight + ChatStyle.entry.message.file.spacing : 0 ) + + (downloadText.visible? downloadText.implicitHeight + ChatStyle.entry.message.file.spacing : 0) + 2*ChatStyle.entry.message.file.margins + property real scaleAnimatorTo : ChatStyle.entry.message.file.animation.to - Component { - id: extension - - Rectangle { - property real scaleAnimatorTo : ChatStyle.entry.message.file.animation.to - color: ChatStyle.entry.message.file.extension.background.color - + height: fitHeight + width: fitWidth + color: ChatStyle.entry.message.file.extension.background.color + radius: ChatStyle.entry.message.file.extension.radius + ColumnLayout{ + anchors.fill: parent + anchors.topMargin: ChatStyle.entry.message.file.margins + anchors.bottomMargin: ChatStyle.entry.message.file.margins + spacing: ChatStyle.entry.message.file.spacing + Icon{ + id: fileIcon + Layout.alignment: Qt.AlignCenter + icon: extensionText.text != '' ? ChatStyle.entry.message.file.extension.icon : ChatStyle.entry.message.file.extension.unknownIcon + iconSize: ChatStyle.entry.message.file.extension.iconSize + Layout.preferredHeight: iconSize + Layout.preferredWidth: iconSize Text { - anchors.fill: parent - + id: extensionText + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottomMargin: ChatStyle.entry.message.file.spacing + width: parent.width - ChatStyle.entry.message.file.spacing color: ChatStyle.entry.message.file.extension.text.color font.bold: true + font.pointSize: ChatStyle.entry.message.file.extension.text.pointSize elide: Text.ElideRight text: (mainRow.contentModel?Utils.getExtension(mainRow.contentModel.name).toUpperCase():'') - horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } } - } - Loader { - id: thumbnailProvider - - Layout.fillHeight: true - Layout.preferredWidth: parent.height*4/3 - - - - sourceComponent: (mainRow.contentModel ? - (mainRow.isAnimatedImage ? animatedImage - : (mainRow.haveThumbnail ? thumbnailImage : extension ) - ) : undefined) - - ScaleAnimator { - id: thumbnailProviderAnimator + Text { + id: fileName + Layout.fillWidth: true + Layout.fillHeight: true + visible: mainRow.contentModel && !mainRow.isAnimatedImage && !mainRow.haveThumbnail - target: thumbnailProvider + color: ChatStyle.entry.message.file.extension.text.color + elide: Text.ElideRight + font.pointSize: ChatStyle.entry.message.file.name.pointSize + wrapMode: Text.WrapAnywhere + horizontalAlignment: Qt.AlignCenter - duration: ChatStyle.entry.message.file.animation.duration - easing.type: Easing.InOutQuad - from: 1.0 + text: (mainRow.contentModel ? mainRow.contentModel.name : '') } - - states: State { - name: 'hovered' + Text{ + id: downloadText + Layout.fillWidth: true + Layout.fillHeight: true + Layout.preferredHeight: visible ? ChatStyle.entry.message.file.download.height : 0 + text: mainRow.contentModel ? 'Download ('+Utils.formatSize(mainRow.contentModel.fileSize)+')' : '' + font.underline: true + font.pointSize: ChatStyle.entry.message.file.download.pointSize + color:ChatStyle.entry.message.file.extension.text.color + visible: !progressBar.visible && (mainRow.contentModel? !mainRow.contentModel.wasDownloaded : false) + horizontalAlignment: Qt.AlignCenter + verticalAlignment: Qt.AlignCenter } - - transitions: [ - Transition { - from: '' - to: 'hovered' - - ScriptAction { - script: { - if (thumbnailProviderAnimator.running) { - thumbnailProviderAnimator.running = false - } - - thumbnailProvider.z = Constants.zPopup - thumbnailProviderAnimator.to = thumbnailProvider.item.scaleAnimatorTo - thumbnailProviderAnimator.running = true - } - } - }, - Transition { - from: 'hovered' - to: '' - - ScriptAction { - script: { - if (thumbnailProviderAnimator.running) { - thumbnailProviderAnimator.running = false - } - - thumbnailProviderAnimator.to = 1.0 - thumbnailProviderAnimator.running = true - thumbnailProvider.z = 0 - } - } - } - ] } + } + } + Loader { + id: thumbnailProvider + + sourceComponent: (mainRow.contentModel ? + (mainRow.isAnimatedImage ? animatedImage + : (mainRow.haveThumbnail ? thumbnailImage : extension ) + ) : undefined) + + ScaleAnimator { + id: thumbnailProviderAnimator - // --------------------------------------------------------------------- - // Upload or file status. - // --------------------------------------------------------------------- - Item{ - Layout.fillWidth: true - Layout.fillHeight: true - Column { - anchors.fill: parent - - spacing: ChatStyle.entry.message.file.status.spacing - - Text { - id: fileName - - color: isOutgoing - ? ChatStyle.entry.message.outgoing.text.color - : ChatStyle.entry.message.incoming.text.color - elide: Text.ElideRight - - font { - bold: true - pointSize: isOutgoing - ? ChatStyle.entry.message.outgoing.text.pointSize - : ChatStyle.entry.message.incoming.text.pointSize - } - - text: (mainRow.contentModel ? mainRow.contentModel.name : '') - width: visible ? parent.width : 0 - visible: mainRow.contentModel && !mainRow.isAnimatedImage && !mainRow.haveThumbnail - } - - ProgressBar { - id: progressBar - - height: ChatStyle.entry.message.file.status.bar.height - width: visible ? parent.width : 0 - - to: (mainRow.contentModel ? mainRow.contentModel.fileSize : 0) - value: mainRow.contentModel ? mainRow.contentModel.fileOffset || to : to - visible: value != to - background: Rectangle { - color: ChatStyle.entry.message.file.status.bar.background.color - radius: ChatStyle.entry.message.file.status.bar.radius - } - - contentItem: Item { - Rectangle { - color: ChatStyle.entry.message.file.status.bar.contentItem.color - height: parent.height - width: progressBar.visualPosition * parent.width - - radius: ChatStyle.entry.message.file.status.bar.radius + target: thumbnailProvider + + duration: ChatStyle.entry.message.file.animation.duration + easing.type: Easing.InOutQuad + from: 1.0 + } + + states: State { + name: 'hovered' + } + + transitions: [ + Transition { + from: '' + to: 'hovered' + + ScriptAction { + script: { + if(thumbnailProvider.sourceComponent != extension){ + if (thumbnailProviderAnimator.running) { + thumbnailProviderAnimator.running = false } + thumbnailProvider.z = Constants.zPopup + thumbnailProviderAnimator.to = thumbnailProvider.item.scaleAnimatorTo + thumbnailProviderAnimator.running = true } } - + } + }, + Transition { + from: 'hovered' + to: '' + + ScriptAction { + script: { + if(thumbnailProvider.sourceComponent != extension){ + if (thumbnailProviderAnimator.running) { + thumbnailProviderAnimator.running = false + } + + thumbnailProviderAnimator.to = 1.0 + thumbnailProviderAnimator.running = true + thumbnailProvider.z = 0 + } + } + } + } + ] + } + + // --------------------------------------------------------------------- + // Upload or file status. + // --------------------------------------------------------------------- + Item{ + anchors.left: thumbnailProvider.right + anchors.right: parent.right + anchors.bottom: thumbnailProvider.bottom + anchors.top: thumbnailProvider.top + anchors.leftMargin: ChatStyle.entry.message.file.spacing + + Column { + anchors.fill: parent + + spacing: ChatStyle.entry.message.file.status.spacing + + ProgressBar { + id: progressBar + + height: ChatStyle.entry.message.file.status.bar.height + width: visible ? parent.width : 0 + + to: (mainRow.contentModel ? mainRow.contentModel.fileSize : 0) + value: mainRow.contentModel ? mainRow.contentModel.fileOffset || to : to + visible: value != to + background: Rectangle { + color: ChatStyle.entry.message.file.status.bar.background.color + radius: ChatStyle.entry.message.file.status.bar.radius + } + + contentItem: Item { + Rectangle { + color: ChatStyle.entry.message.file.status.bar.contentItem.color + height: parent.height + width: progressBar.visualPosition * parent.width + + radius: ChatStyle.entry.message.file.status.bar.radius + } + } + } + /* Text { visible: progressBar.value != progressBar.to color: fileName.color @@ -261,52 +292,35 @@ Row { }else return '' } - } - } - } - } - - Icon { - id:downloadButton - anchors { - bottom: parent.bottom - bottomMargin: ChatStyle.entry.message.file.margins - right: parent.right - rightMargin: ChatStyle.entry.message.file.margins - } - - icon: ChatStyle.entry.message.file.download.icon - iconSize: ChatStyle.entry.message.file.download.iconSize - overwriteColor: isOutgoing ? ChatStyle.entry.message.file.download.outgoingColor : ChatStyle.entry.message.file.download.incomingColor - visible: !progressBar.visible && (mainRow.contentModel? !mainRow.contentModel.wasDownloaded : false) - } - - MouseArea { - function handleMouseMove (mouse) { - thumbnailProvider.state = Utils.pointIsInItem(this, thumbnailProvider, mouse) - ? 'hovered' - : '' - } - - anchors.fill: parent - visible: true - - onClicked: { - if (Utils.pointIsInItem(this, thumbnailProvider, mouse)) { - mainRow.contentModel.openFile() - } else if (mainRow.contentModel && mainRow.contentModel.wasDownloaded) { - mainRow.contentModel.openFile(true)// Show directory - thumbnailProvider.state = '' - } else { - mainRow.contentModel.downloadFile() - thumbnailProvider.state = '' - } - } - onExited: thumbnailProvider.state = '' - onMouseXChanged: handleMouseMove.call(this, mouse) - onMouseYChanged: handleMouseMove.call(this, mouse) + }*/ } } } + + MouseArea { + function handleMouseMove (mouse) { + thumbnailProvider.state = Utils.pointIsInItem(this, thumbnailProvider, mouse) + ? 'hovered' + : '' + } + + anchors.fill: parent + visible: true + + onClicked: { + if (Utils.pointIsInItem(this, thumbnailProvider, mouse)) { + mainRow.contentModel.openFile() + } else if (mainRow.contentModel && mainRow.contentModel.wasDownloaded) { + mainRow.contentModel.openFile(true)// Show directory + thumbnailProvider.state = '' + } else { + mainRow.contentModel.downloadFile() + thumbnailProvider.state = '' + } + } + onExited: thumbnailProvider.state = '' + onMouseXChanged: handleMouseMove.call(this, mouse) + onMouseYChanged: handleMouseMove.call(this, mouse) + } } } diff --git a/linphone-app/ui/modules/Linphone/Styles/Chat/ChatCalendarMessageStyle.qml b/linphone-app/ui/modules/Linphone/Styles/Chat/ChatCalendarMessageStyle.qml index ad2ec891e..93fb98d71 100644 --- a/linphone-app/ui/modules/Linphone/Styles/Chat/ChatCalendarMessageStyle.qml +++ b/linphone-app/ui/modules/Linphone/Styles/Chat/ChatCalendarMessageStyle.qml @@ -100,7 +100,7 @@ QtObject { property QtObject copyLinkButton: QtObject{ property int iconSize: 20 property string name : 'copy' - property string icon : 'ics_copy_custom' + property string icon : 'menu_copy_text_custom' property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_b_n', icon, 's_n_b_bg').color property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_b_h', icon, 's_h_b_bg').color property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_b_p', icon, 's_p_b_bg').color diff --git a/linphone-app/ui/modules/Linphone/Styles/Chat/ChatStyle.qml b/linphone-app/ui/modules/Linphone/Styles/Chat/ChatStyle.qml index c2d6cd3f2..df5f4e642 100644 --- a/linphone-app/ui/modules/Linphone/Styles/Chat/ChatStyle.qml +++ b/linphone-app/ui/modules/Linphone/Styles/Chat/ChatStyle.qml @@ -9,7 +9,7 @@ import ColorsList 1.0 QtObject { property string sectionName : 'Chat' property color color: ColorsList.add(sectionName, 'q').color - property string copyTextIcon : 'copy_custom' + property string copyTextIcon : 'menu_copy_text_custom' property int rightButtonMargin: 15 property int rightButtonSize: 30 property int rightButtonLMargin: 10 @@ -188,8 +188,15 @@ QtObject { property int margins: 8 property int spacing: 8 property int width: 100 + + property QtObject name: QtObject{ + property int pointSize: Units.dp * 7 + } + property QtObject download: QtObject{ property string icon: 'download_custom' + property int height: 20 + property int pointSize: Units.dp * 8 property int iconSize: 30 property color outgoingColor: ColorsList.addImageColor(sectionName+'_download_out', icon, 'g').color property color incomingColor: ColorsList.addImageColor(sectionName+'_download_in', icon, 'q').color @@ -202,12 +209,18 @@ QtObject { } property QtObject extension: QtObject { + property string icon: 'file_extension_custom' + property string unknownIcon: 'file_unknown_custom' + property int iconSize: 60 + property int radius: 5 + property QtObject background: QtObject { - property color color: ColorsList.add(sectionName+'_file_extension_bg', 'l50').color + property color color: ColorsList.add(sectionName+'_file_extension_bg', 'q').color } property QtObject text: QtObject { - property color color: ColorsList.add(sectionName+'_file_extension_text', 'q').color + property color color: ColorsList.add(sectionName+'_file_extension_text', 'd').color + property int pointSize: Units.dp * 9 } } @@ -231,7 +244,7 @@ QtObject { property QtObject images: QtObject { property int height: 48 - } + } property QtObject incoming: QtObject { property color backgroundColor: ColorsList.add(sectionName+'_incoming_bg', 'o').color diff --git a/linphone-app/ui/views/App/Styles/Calls/CallFullscreenStyle.qml b/linphone-app/ui/views/App/Styles/Calls/CallFullscreenStyle.qml index 22c33498c..34e717c46 100644 --- a/linphone-app/ui/views/App/Styles/Calls/CallFullscreenStyle.qml +++ b/linphone-app/ui/views/App/Styles/Calls/CallFullscreenStyle.qml @@ -126,7 +126,7 @@ QtObject { property QtObject telKeyad: QtObject { property int iconSize: 16 property string name : 'telKeypad' - property string icon : 'tel_keypad_custom' + property string icon : 'dialpad_custom' property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'me_n_b_bg').color property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'me_h_b_bg').color property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 'me_p_b_bg').color diff --git a/linphone-app/ui/views/App/Styles/Calls/CallStyle.qml b/linphone-app/ui/views/App/Styles/Calls/CallStyle.qml index 47c1fb3a6..c76f3ec73 100644 --- a/linphone-app/ui/views/App/Styles/Calls/CallStyle.qml +++ b/linphone-app/ui/views/App/Styles/Calls/CallStyle.qml @@ -126,7 +126,7 @@ QtObject { property QtObject telKeyad: QtObject { property int iconSize: 16 property string name : 'telKeypad' - property string icon : 'tel_keypad_custom' + property string icon : 'dialpad_custom' property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'me_n_b_bg').color property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'me_h_b_bg').color property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 'me_p_b_bg').color diff --git a/linphone-app/ui/views/App/Styles/Main/MainWindowStyle.qml b/linphone-app/ui/views/App/Styles/Main/MainWindowStyle.qml index 087ecb2d4..7b754ddf9 100644 --- a/linphone-app/ui/views/App/Styles/Main/MainWindowStyle.qml +++ b/linphone-app/ui/views/App/Styles/Main/MainWindowStyle.qml @@ -84,9 +84,9 @@ QtObject { property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'ma_p_b_fg').color } property QtObject telKeyad: QtObject { - property int iconSize: 16 + property int iconSize: 40 property string name : 'telKeypad' - property string icon : 'tel_keypad_custom' + property string icon : 'dialpad_custom' property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'l_n_b_bg').color property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'l_h_b_bg').color property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 'l_p_b_bg').color diff --git a/linphone-app/ui/views/App/Styles/Settings/SettingsWindowStyle.qml b/linphone-app/ui/views/App/Styles/Settings/SettingsWindowStyle.qml index 4cf432aec..6a850b450 100644 --- a/linphone-app/ui/views/App/Styles/Settings/SettingsWindowStyle.qml +++ b/linphone-app/ui/views/App/Styles/Settings/SettingsWindowStyle.qml @@ -69,7 +69,7 @@ QtObject { } property QtObject copy: QtObject { property int iconSize: 30 - property string icon : 'copy_custom' + property string icon : 'menu_copy_text_custom' property string name : 'copy' property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'l_n_b_bg').color property color backgroundDisabledColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_d', icon, 'l_d_b_bg').color diff --git a/linphone-sdk b/linphone-sdk index 1355eaf8e..7e54d398f 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit 1355eaf8e34f3505f3812743bd2232e01558fde2 +Subproject commit 7e54d398fa9f1648486386e66e2cc5c2984d19dd