mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-07-16 21:45:24 +02:00
contextmenu: various fixes + simplify
Change-Id: Ibf10c91d4f875e9e346003c6fe9797325cf23c4f
This commit is contained in:
parent
bb8f4cc3a7
commit
d5bacf6b9f
3 changed files with 39 additions and 43 deletions
|
@ -58,34 +58,28 @@ Menu {
|
||||||
menuItems[i].itemRealWidth = menuPreferredWidth;
|
menuItems[i].itemRealWidth = menuPreferredWidth;
|
||||||
if (menuItemsPreferredHeight)
|
if (menuItemsPreferredHeight)
|
||||||
menuItems[i].itemPreferredHeight = menuItemsPreferredHeight;
|
menuItems[i].itemPreferredHeight = menuItemsPreferredHeight;
|
||||||
|
var menuSeparatorComponent, menuSeparatorComponentObj;
|
||||||
if (i !== menuItems.length - 1) {
|
if (i !== menuItems.length - 1) {
|
||||||
var menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root);
|
menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root);
|
||||||
var menuSeparatorComponentObj = menuSeparatorComponent.createObject();
|
menuSeparatorComponentObj = menuSeparatorComponent.createObject();
|
||||||
generalMenuSeparatorList.push(menuSeparatorComponentObj);
|
generalMenuSeparatorList.push(menuSeparatorComponentObj);
|
||||||
root.addItem(menuSeparatorComponentObj);
|
root.addItem(menuSeparatorComponentObj);
|
||||||
}
|
}
|
||||||
if (menuItems[i].addMenuSeparatorAfter) {
|
if (menuItems[i].addMenuSeparatorAfter) {
|
||||||
var menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root);
|
menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root);
|
||||||
var menuSeparatorComponentObj = menuSeparatorComponent.createObject(root, {
|
menuSeparatorComponentObj = menuSeparatorComponent.createObject(root, {
|
||||||
"separatorColor": "#DEDEDE",
|
"separatorColor": "#DEDEDE",
|
||||||
"separatorPreferredHeight": 0
|
"separatorPreferredHeight": 0
|
||||||
});
|
});
|
||||||
generalMenuSeparatorList.push(menuSeparatorComponentObj);
|
generalMenuSeparatorList.push(menuSeparatorComponentObj);
|
||||||
root.addItem(menuSeparatorComponentObj);
|
root.addItem(menuSeparatorComponentObj);
|
||||||
var menuSeparatorComponent = Qt.createComponent("GeneralMenuSeparator.qml", Component.PreferSynchronous, root);
|
menuSeparatorComponentObj = menuSeparatorComponent.createObject();
|
||||||
var menuSeparatorComponentObj = menuSeparatorComponent.createObject();
|
|
||||||
generalMenuSeparatorList.push(menuSeparatorComponentObj);
|
generalMenuSeparatorList.push(menuSeparatorComponentObj);
|
||||||
root.addItem(menuSeparatorComponentObj);
|
root.addItem(menuSeparatorComponentObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
root.addItem(menuBottomBorder);
|
root.addItem(menuBottomBorder);
|
||||||
root.open();
|
|
||||||
}
|
|
||||||
|
|
||||||
onVisibleChanged: {
|
|
||||||
if (!visible)
|
|
||||||
root.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
font.pointSize: JamiTheme.menuFontSize
|
font.pointSize: JamiTheme.menuFontSize
|
||||||
|
|
|
@ -56,6 +56,7 @@ Loader {
|
||||||
contextMenu.menuItemsPreferredHeight = contextMenuItemPreferredHeight;
|
contextMenu.menuItemsPreferredHeight = contextMenuItemPreferredHeight;
|
||||||
contextMenu.menuSeparatorPreferredHeight = contextMenuSeparatorPreferredHeight;
|
contextMenu.menuSeparatorPreferredHeight = contextMenuSeparatorPreferredHeight;
|
||||||
contextMenu.loadMenuItems(menuItemsToLoad);
|
contextMenu.loadMenuItems(menuItemsToLoad);
|
||||||
|
contextMenu.open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,12 @@ RowLayout {
|
||||||
signal showMapClicked
|
signal showMapClicked
|
||||||
signal emojiButtonClicked
|
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 {
|
Rectangle {
|
||||||
|
|
||||||
|
@ -67,11 +72,16 @@ RowLayout {
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.bottomMargin: marginSize / 2
|
anchors.bottomMargin: marginSize / 2
|
||||||
|
|
||||||
|
// Used to choose the correct color for the button.
|
||||||
|
readonly property bool highlight: down || hovered
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
implicitWidth: showMoreButton.width
|
implicitWidth: showMoreButton.width
|
||||||
implicitHeight: showMoreButton.height
|
implicitHeight: showMoreButton.height
|
||||||
radius: 5
|
radius: 5
|
||||||
color: JamiTheme.transparentColor
|
color: showMoreButton.highlight ?
|
||||||
|
JamiTheme.hoveredButtonColor :
|
||||||
|
JamiTheme.transparentColor
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialToolTip {
|
MaterialToolTip {
|
||||||
|
@ -80,7 +90,7 @@ RowLayout {
|
||||||
parent: showMoreButton
|
parent: showMoreButton
|
||||||
visible: showMoreButton.hovered && (text.length > 0)
|
visible: showMoreButton.hovered && (text.length > 0)
|
||||||
delay: Qt.styleHints.mousePressAndHoldInterval
|
delay: Qt.styleHints.mousePressAndHoldInterval
|
||||||
text: JamiStrings.showMore
|
text: showMoreButton.down ? JamiStrings.showLess : JamiStrings.showMore
|
||||||
}
|
}
|
||||||
|
|
||||||
indicator: ResponsiveImage {
|
indicator: ResponsiveImage {
|
||||||
|
@ -93,28 +103,29 @@ RowLayout {
|
||||||
|
|
||||||
source: JamiResources.more_menu_black_24dp_svg
|
source: JamiResources.more_menu_black_24dp_svg
|
||||||
|
|
||||||
color: JamiTheme.chatViewFooterImgColor
|
color: showMoreButton.highlight ?
|
||||||
|
JamiTheme.chatViewFooterImgHoverColor :
|
||||||
|
JamiTheme.chatViewFooterImgColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
onHoveredChanged: {
|
Component {
|
||||||
if (!sharePopup.opened) {
|
id: sharePopupComp
|
||||||
showMoreButton.indicator.color = hovered ? JamiTheme.chatViewFooterImgHoverColor : JamiTheme.chatViewFooterImgColor;
|
ShareMenu {
|
||||||
showMoreButton.background.color = hovered ? JamiTheme.hoveredButtonColor : JamiTheme.transparentColor;
|
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 {
|
popup: ShareMenu {
|
||||||
id: sharePopup
|
id: sharePopup
|
||||||
onAudioRecordMessageButtonClicked: {
|
onAudioRecordMessageButtonClicked: root.audioRecordMessageButtonClicked()
|
||||||
root.audioRecordMessageButtonClicked();
|
onVideoRecordMessageButtonClicked: root.videoRecordMessageButtonClicked()
|
||||||
}
|
onShowMapClicked: root.showMapClicked()
|
||||||
onVideoRecordMessageButtonClicked: {
|
|
||||||
root.videoRecordMessageButtonClicked();
|
|
||||||
}
|
|
||||||
onShowMapClicked: {
|
|
||||||
root.showMapClicked();
|
|
||||||
}
|
|
||||||
modelList: listViewMoreButton.menuMoreButton
|
modelList: listViewMoreButton.menuMoreButton
|
||||||
y: showMoreButton.y + 31
|
y: showMoreButton.y + 31
|
||||||
x: showMoreButton.x - 3
|
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 {
|
Rectangle {
|
||||||
id: rectangle
|
id: rectangle
|
||||||
|
|
||||||
|
@ -349,8 +352,6 @@ RowLayout {
|
||||||
}
|
}
|
||||||
var selectedText = text.substring(start - char1.length, end + char2.length);
|
var selectedText = text.substring(start - char1.length, end + char2.length);
|
||||||
return (selectedText.startsWith(char1) && selectedText.endsWith(char2));
|
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) {
|
function isStarStyle(text, selectionStart, selectionEnd, type) {
|
||||||
|
@ -836,14 +837,14 @@ RowLayout {
|
||||||
|
|
||||||
toolTipText: modelData.shortcutText
|
toolTipText: modelData.shortcutText
|
||||||
shortcutKey: modelData.shortcutKey
|
shortcutKey: modelData.shortcutKey
|
||||||
hasShortcut: modelData.hasShortcut != null ? modelData.hasShortcut : true
|
hasShortcut: modelData.hasShortcut ? true : false
|
||||||
source: modelData.iconSrc
|
source: modelData.iconSrc
|
||||||
focusPolicy: Qt.TabFocus
|
focusPolicy: Qt.TabFocus
|
||||||
|
|
||||||
normalColor: {
|
normalColor: {
|
||||||
if (showPreview) {
|
if (showPreview) {
|
||||||
return JamiTheme.primaryBackgroundColor;
|
return JamiTheme.primaryBackgroundColor;
|
||||||
} else if (modelData.normalColor != null) {
|
} else if (modelData.normalColor) {
|
||||||
return modelData.normalColor;
|
return modelData.normalColor;
|
||||||
} else if (modelData.isStyle) {
|
} else if (modelData.isStyle) {
|
||||||
return JamiTheme.hoveredButtonColor;
|
return JamiTheme.hoveredButtonColor;
|
||||||
|
@ -856,7 +857,7 @@ RowLayout {
|
||||||
return JamiTheme.chatViewFooterImgDisableColor;
|
return JamiTheme.chatViewFooterImgDisableColor;
|
||||||
} else if (hovered) {
|
} else if (hovered) {
|
||||||
return JamiTheme.chatViewFooterImgHoverColor;
|
return JamiTheme.chatViewFooterImgHoverColor;
|
||||||
} else if (modelData.imageColor != null) {
|
} else if (modelData.imageColor !== null) {
|
||||||
return modelData.imageColor;
|
return modelData.imageColor;
|
||||||
} else if (modelData.isStyle) {
|
} else if (modelData.isStyle) {
|
||||||
return JamiTheme.chatViewFooterImgHoverColor;
|
return JamiTheme.chatViewFooterImgHoverColor;
|
||||||
|
|
Loading…
Add table
Reference in a new issue