diff --git a/src/app/commoncomponents/contextmenu/BaseContextMenu.qml b/src/app/commoncomponents/contextmenu/BaseContextMenu.qml index f43008e36c85e4ae0308d1e29b1086eba9cde0f2..395e4c55202c6f3707687bdef9cff9dd7b892768 100644 --- a/src/app/commoncomponents/contextmenu/BaseContextMenu.qml +++ b/src/app/commoncomponents/contextmenu/BaseContextMenu.qml @@ -58,34 +58,28 @@ Menu { menuItems[i].itemRealWidth = menuPreferredWidth; if (menuItemsPreferredHeight) menuItems[i].itemPreferredHeight = menuItemsPreferredHeight; + var menuSeparatorComponent, menuSeparatorComponentObj; if (i !== menuItems.length - 1) { - var menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root); - var menuSeparatorComponentObj = menuSeparatorComponent.createObject(); + menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root); + menuSeparatorComponentObj = menuSeparatorComponent.createObject(); generalMenuSeparatorList.push(menuSeparatorComponentObj); root.addItem(menuSeparatorComponentObj); } if (menuItems[i].addMenuSeparatorAfter) { - var menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root); - var menuSeparatorComponentObj = menuSeparatorComponent.createObject(root, { + menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root); + menuSeparatorComponentObj = menuSeparatorComponent.createObject(root, { "separatorColor": "#DEDEDE", "separatorPreferredHeight": 0 }); generalMenuSeparatorList.push(menuSeparatorComponentObj); root.addItem(menuSeparatorComponentObj); - var menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root); - var menuSeparatorComponentObj = menuSeparatorComponent.createObject(); + menuSeparatorComponentObj = menuSeparatorComponent.createObject(); generalMenuSeparatorList.push(menuSeparatorComponentObj); root.addItem(menuSeparatorComponentObj); } } } root.addItem(menuBottomBorder); - root.open(); - } - - onVisibleChanged: { - if (!visible) - root.close(); } font.pointSize: JamiTheme.menuFontSize diff --git a/src/app/commoncomponents/contextmenu/ContextMenuAutoLoader.qml b/src/app/commoncomponents/contextmenu/ContextMenuAutoLoader.qml index e5a9ffe768e87b3709467a00bf5a4cae06c30307..e5a0893de52cf0f136bb137dc91754c49911f857 100644 --- a/src/app/commoncomponents/contextmenu/ContextMenuAutoLoader.qml +++ b/src/app/commoncomponents/contextmenu/ContextMenuAutoLoader.qml @@ -56,6 +56,7 @@ Loader { contextMenu.menuItemsPreferredHeight = contextMenuItemPreferredHeight; contextMenu.menuSeparatorPreferredHeight = contextMenuSeparatorPreferredHeight; contextMenu.loadMenuItems(menuItemsToLoad); + contextMenu.open(); } } } diff --git a/src/app/mainview/components/MessageBar.qml b/src/app/mainview/components/MessageBar.qml index 8d6e45c08f8c955d19c0f78a09d0e2cb92987f0b..4ceaf8f6f79785474ba19ab0310cb27abff095bc 100644 --- a/src/app/mainview/components/MessageBar.qml +++ b/src/app/mainview/components/MessageBar.qml @@ -51,7 +51,12 @@ RowLayout { signal showMapClicked signal emojiButtonClicked - height: showTypo || multiLine ? messageBarTextArea.height + 25 + 3 * marginSize + 1 : textAreaObj.height + marginSize + 1 + height: { + if (showTypo || multiLine) + return messageBarTextArea.height + 25 + 3 * marginSize + 1 + else + return textAreaObj.height + marginSize + 1 + } Rectangle { @@ -67,11 +72,16 @@ RowLayout { anchors.bottom: parent.bottom anchors.bottomMargin: marginSize / 2 + // Used to choose the correct color for the button. + readonly property bool highlight: down || hovered + background: Rectangle { implicitWidth: showMoreButton.width implicitHeight: showMoreButton.height radius: 5 - color: JamiTheme.transparentColor + color: showMoreButton.highlight ? + JamiTheme.hoveredButtonColor : + JamiTheme.transparentColor } MaterialToolTip { @@ -80,7 +90,7 @@ RowLayout { parent: showMoreButton visible: showMoreButton.hovered && (text.length > 0) delay: Qt.styleHints.mousePressAndHoldInterval - text: JamiStrings.showMore + text: showMoreButton.down ? JamiStrings.showLess : JamiStrings.showMore } indicator: ResponsiveImage { @@ -93,28 +103,29 @@ RowLayout { source: JamiResources.more_menu_black_24dp_svg - color: JamiTheme.chatViewFooterImgColor + color: showMoreButton.highlight ? + JamiTheme.chatViewFooterImgHoverColor : + JamiTheme.chatViewFooterImgColor; } - onHoveredChanged: { - if (!sharePopup.opened) { - showMoreButton.indicator.color = hovered ? JamiTheme.chatViewFooterImgHoverColor : JamiTheme.chatViewFooterImgColor; - showMoreButton.background.color = hovered ? JamiTheme.hoveredButtonColor : JamiTheme.transparentColor; + Component { + id: sharePopupComp + ShareMenu { + id: sharePopup + onAudioRecordMessageButtonClicked: root.audioRecordMessageButtonClicked() + onVideoRecordMessageButtonClicked: root.videoRecordMessageButtonClicked() + onShowMapClicked: root.showMapClicked() + modelList: listViewMoreButton.menuMoreButton + y: showMoreButton.y + 31 + x: showMoreButton.x - 3 } - toolTipMoreButton.text = sharePopup.opened ? JamiStrings.showLess : JamiStrings.showMore; } popup: ShareMenu { id: sharePopup - onAudioRecordMessageButtonClicked: { - root.audioRecordMessageButtonClicked(); - } - onVideoRecordMessageButtonClicked: { - root.videoRecordMessageButtonClicked(); - } - onShowMapClicked: { - root.showMapClicked(); - } + onAudioRecordMessageButtonClicked: root.audioRecordMessageButtonClicked() + onVideoRecordMessageButtonClicked: root.videoRecordMessageButtonClicked() + onShowMapClicked: root.showMapClicked() modelList: listViewMoreButton.menuMoreButton y: showMoreButton.y + 31 x: showMoreButton.x - 3 @@ -122,14 +133,6 @@ RowLayout { } } - Connections { - target: sharePopup - function onOpenedChanged() { - showMoreButton.indicator.color = (showMoreButton.parent && showMoreButton.parent.hovered) || (sharePopup != null && sharePopup.opened) ? JamiTheme.chatViewFooterImgHoverColor : JamiTheme.chatViewFooterImgColor; - showMoreButton.background.color = (showMoreButton.parent && showMoreButton.parent.hovered) || sharePopup.opened ? JamiTheme.hoveredButtonColor : JamiTheme.transparentColor; - } - } - Rectangle { id: rectangle @@ -349,8 +352,6 @@ RowLayout { } var selectedText = text.substring(start - char1.length, end + char2.length); return (selectedText.startsWith(char1) && selectedText.endsWith(char2)); - var res = regex.test(text.substring(start - char1.length, end + char2.length)); - return res && start - char1.length >= 0 && end + char2.length <= text.length; } function isStarStyle(text, selectionStart, selectionEnd, type) { @@ -836,14 +837,14 @@ RowLayout { toolTipText: modelData.shortcutText shortcutKey: modelData.shortcutKey - hasShortcut: modelData.hasShortcut != null ? modelData.hasShortcut : true + hasShortcut: modelData.hasShortcut ? true : false source: modelData.iconSrc focusPolicy: Qt.TabFocus normalColor: { if (showPreview) { return JamiTheme.primaryBackgroundColor; - } else if (modelData.normalColor != null) { + } else if (modelData.normalColor) { return modelData.normalColor; } else if (modelData.isStyle) { return JamiTheme.hoveredButtonColor; @@ -856,7 +857,7 @@ RowLayout { return JamiTheme.chatViewFooterImgDisableColor; } else if (hovered) { return JamiTheme.chatViewFooterImgHoverColor; - } else if (modelData.imageColor != null) { + } else if (modelData.imageColor !== null) { return modelData.imageColor; } else if (modelData.isStyle) { return JamiTheme.chatViewFooterImgHoverColor;