added PageSettingsSplitTunneling

- added a call to the context menu when clicking the right mouse button for textInput
This commit is contained in:
vladimir.kuznetsov 2023-08-08 19:10:14 +05:00
parent 2c429fd406
commit 90ae0b3e44
31 changed files with 1018 additions and 240 deletions

View file

@ -20,6 +20,8 @@ Button {
property string imageSource
property bool squareLeftSide: false
implicitHeight: 56
hoverEnabled: true
@ -44,6 +46,32 @@ Button {
Behavior on color {
PropertyAnimation { duration: 200 }
}
Rectangle {
visible: root.squareLeftSide
z: 1
width: parent.radius
height: parent.radius
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
color: {
if (root.enabled) {
if (root.pressed) {
return pressedColor
}
return root.hovered ? hoveredColor : defaultColor
} else {
return disabledColor
}
}
Behavior on color {
PropertyAnimation { duration: 200 }
}
}
}
MouseArea {

View file

@ -0,0 +1,33 @@
import QtQuick
import QtQuick.Controls
import Qt.labs.platform
Menu {
property var textObj
MenuItem {
text: qsTr("C&ut")
shortcut: StandardKey.Cut
enabled: textObj.selectedText
onTriggered: textObj.cut()
}
MenuItem {
text: qsTr("&Copy")
shortcut: StandardKey.Copy
enabled: textObj.selectedText
onTriggered: textObj.copy()
}
MenuItem {
text: qsTr("&Paste")
shortcut: StandardKey.Paste
enabled: textObj.canPaste
onTriggered: textObj.paste()
}
MenuItem {
text: qsTr("&SelectAll")
shortcut: StandardKey.SelectAll
enabled: textObj.length > 0
onTriggered: textObj.selectAll()
}
}

View file

@ -24,9 +24,11 @@ Item {
property string rootButtonBackgroundColor: "#1C1D21"
property string rootButtonHoveredBorderColor: "#494B50"
property string rootButtonDefaultBorderColor: "transparent"
property string rootButtonDefaultBorderColor: "#2C2D30"
property string rootButtonPressedBorderColor: "#D7D8DB"
property int rootButtonTextMargins: 16
property real drawerHeight: 0.9
property Component listView
@ -74,7 +76,9 @@ Item {
spacing: 0
ColumnLayout {
Layout.leftMargin: 16
Layout.leftMargin: rootButtonTextMargins
Layout.topMargin: rootButtonTextMargins
Layout.bottomMargin: rootButtonTextMargins
LabelTextType {
Layout.fillWidth: true
@ -96,16 +100,10 @@ Item {
color: root.enabled ? root.textColor : root.textDisabledColor
text: root.text
wrapMode: Text.NoWrap
elide: Text.ElideRight
}
}
ImageButtonType {
Layout.leftMargin: 4
Layout.rightMargin: 16
hoverEnabled: false
image: rootButtonImage
imageColor: rootButtonImageColor

View file

@ -0,0 +1,70 @@
import QtQuick
import QtQuick.Controls
Rectangle {
id: root
property string placeholderText
property string text
property var onEditingFinished
height: 148
color: "#1C1D21"
border.width: 1
border.color: "#2C2D30"
radius: 16
FlickableType {
anchors.top: parent.top
anchors.bottom: parent.bottom
contentHeight: textArea.implicitHeight
TextArea {
id: textArea
width: parent.width
topPadding: 16
leftPadding: 16
anchors.topMargin: 16
anchors.bottomMargin: 16
color: "#D7D8DB"
selectionColor: "#412102"
selectedTextColor: "#D7D8DB"
placeholderTextColor: "#878B91"
font.pixelSize: 16
font.weight: Font.Medium
font.family: "PT Root UI VF"
placeholderText: root.placeholderText
text: root.text
onEditingFinished: {
if (root.onEditingFinished && typeof root.onEditingFinished === "function") {
root.onEditingFinished()
}
}
wrapMode: Text.Wrap
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: contextMenu.open()
}
ContextMenuType {
id: contextMenu
textObj: textArea
}
}
}
//todo make whole background clickable, with code below we lose ability to select text by mouse
// MouseArea {
// anchors.fill: parent
// cursorShape: Qt.IBeamCursor
// onClicked: textArea.forceActiveFocus()
// }
}

View file

@ -41,7 +41,7 @@ Item {
Rectangle {
id: backgroud
Layout.fillWidth: true
Layout.preferredHeight: 74
Layout.preferredHeight: input.implicitHeight
color: root.enabled ? root.backgroundColor : root.backgroundDisabledColor
radius: 16
border.color: textField.focus ? root.borderFocusedColor : root.borderColor
@ -52,16 +52,17 @@ Item {
}
RowLayout {
id: input
anchors.fill: backgroud
ColumnLayout {
Layout.margins: 16
LabelTextType {
text: root.headerText
color: root.enabled ? root.headerTextColor : root.headerTextDisabledColor
visible: text !== ""
Layout.fillWidth: true
Layout.rightMargin: 16
Layout.leftMargin: 16
Layout.topMargin: 16
}
TextField {
@ -82,9 +83,7 @@ Item {
height: 24
Layout.fillWidth: true
Layout.rightMargin: 16
Layout.leftMargin: 16
Layout.bottomMargin: 16
topPadding: 0
rightPadding: 0
leftPadding: 0
@ -98,24 +97,37 @@ Item {
onTextChanged: {
root.errorText = ""
}
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: contextMenu.open()
}
ContextMenuType {
id: contextMenu
textObj: textField
}
}
}
BasicButtonType {
visible: (root.buttonText !== "") || (root.buttonImageSource !== "")
defaultColor: "transparent"
hoveredColor: Qt.rgba(1, 1, 1, 0.08)
pressedColor: Qt.rgba(1, 1, 1, 0.12)
disabledColor: "#878B91"
textColor: "#D7D8DB"
borderWidth: 0
// defaultColor: "transparent"
// hoveredColor: Qt.rgba(1, 1, 1, 0.08)
// pressedColor: Qt.rgba(1, 1, 1, 0.12)
// disabledColor: "#878B91"
// textColor: "#D7D8DB"
// borderWidth: 0
text: root.buttonText
imageSource: root.buttonImageSource
Layout.rightMargin: 24
Layout.preferredHeight: 32
// Layout.rightMargin: 24
Layout.preferredHeight: content.implicitHeight
Layout.preferredWidth: content.implicitHeight
squareLeftSide: true
onClicked: {
if (root.clickedFunc && typeof root.clickedFunc === "function") {