Files
advotracker/advotracker_qml/resources/pages/PaneNumberHarmData.qml
2020-06-19 17:44:02 +02:00

977 lines
46 KiB
QML
Executable File

/*
* AdvoTracker - Hotline tackingtool for Advocats
*
* Copyright (c) 2017 Ralf Zerres <ralf.zerres@networkx.de>
*
* AdvoTracker is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* AdvoTracker is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with AdvoTracker; If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.10 // Qt 5.10
import QtQuick.Controls 2.3 // Qt 5.10
import QtQuick.Layouts 1.3 // Qt 5.10
import QtQuick.Controls.Material 2.3 // Qt 5.10
// AdvoTracker Module
import de.networkx.AdvoTracker 1.0 as Nwx
import SortFilterProxyModel 0.2
Pane {
id: paneNumberHarmAdmin
Layout.fillWidth:true
//width: parent.width
leftPadding: 26
rightPadding: 26
topPadding: 18
bottomPadding: 18
ListView {
id: listNumberHarmData
anchors.fill: parent
property string numberHarm
//Layout.fillWidth: true
//Layout.fillHeight: true
//Layout.margins: 12
//displayMarginBeginning: 40
//displayMarginEnd: 40
model: SortFilterProxyModel {
id: filterNumberHarm
sourceModel: modelNumberHarm
filters: RegExpFilter {
// useRole
roleName: "numberHarm"
pattern: numberHarm
//caseSensitivity: Qt.CaseInsensitive
//caseSensitivity: Qt.Sensitive
}
sorters: [ StringSorter { roleName: "numberHarm" } ]
} // filterNumberHarm
delegate: delegateNumberHarmData
}
Component {
id: delegateNumberHarmData
Pane {
id: paneNumberHarmData
//Layout.fillWidth: true
width: parent.width
leftPadding: 18
rightPadding: 18
topPadding: 18
bottomPadding: 18
property string numberHarm
Item {
id: itemWidth
property int labelWidth: 140
property int textFieldWidth: 300
}
GroupBox {
id: groupBoxBaseData
title: qsTr("Base data")
width: parent.width
Layout.fillWidth: true
RowLayout {
id: rowBoxBaseData
spacing: 12
Pane {
id: groupBoxKeyData
//title: qsTr("Key data")
anchors.fill: parent
ColumnLayout {
id: columnBaseData
width: parent.width
anchors.topMargin: 12
spacing: 16
RowLayout {
id: rowNumberHarm
//width: parent.width
Layout.fillWidth: true
//visible: true
spacing: 12
Nwx.Label {
id: labelNumberHarm
Layout.minimumWidth: 100
Layout.preferredWidth: itemWidth.labelWidth
text: qsTr("Harm number")
//"Schadensnummer"
horizontalAlignment: Qt.AlignHRight
verticalAlignment: Qt.AlignTop
}
Nwx.TextField {
id: numberHarm
Layout.preferredWidth: itemWidth.textFieldWidth
Layout.maximumWidth: itemWidth.textFieldWidth
placeholderText: qsTr("Harm number")
text: model.numberHarm
ToolTip.timeout: 2000
ToolTip.visible: pressed
ToolTip.text: qsTr("Harm number must be in line with given mask!")
//"Die Schadensnummer muss der vorgegebenen Maske entsprechen!"
background: Rectangle {
border.color: numberHarm.activeFocus ? "#6f1a32" : "lightgrey"
radius: 5
border.width: 2
}
} // numberHarm
} // rowNumberHarm
RowLayout {
id: rowPolicyOwner
visible: true
//Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
spacing: 12
Nwx.Label {
id: labelPolicyowner
Layout.minimumWidth: 100
Layout.preferredWidth: itemWidth.labelWidth
text: qsTr("Name")
horizontalAlignment: Qt.AlignHRight
verticalAlignment: Qt.AlignTop
}
Nwx.TextField {
id: namePolicyowner
//Layout.preferredWidth: 200
//Layout.maximumWidth: 400
Layout.preferredWidth: itemWidth.textFieldWidth
Layout.maximumWidth: itemWidth.textFieldWidth
//width: rowPoliciesowner - 100
//Layout.fillWidth: true
text: model.namePolicyowner
//width: 300
placeholderText: qsTr("Name of the given policies owner")
background: Rectangle {
radius: 5
border.color: namePolicyowner.activeFocus ? "#6f1a32" : "lightgrey"
border.width: 2
}
} // namePolicyowner
} // rowPolicyOwner
RowLayout {
id: rowPolicyholder
Layout.fillWidth: true
visible: true
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
spacing: 12
Nwx.Label {
id: labelPolicyholder
Layout.minimumWidth: 100
//Layout.preferredWidth: 140
Layout.preferredWidth: itemWidth.labelWidth
text: qsTr("Policy number")
horizontalAlignment: Qt.AlignHRight
verticalAlignment: Qt.AlignTop
}
Nwx.TextField {
id: numberPolicyholder
//Layout.preferredWidth: 200
//Layout.maximumWidth: 300
Layout.preferredWidth: itemWidth.textFieldWidth
Layout.maximumWidth: itemWidth.textFieldWidth
//width: rowPolicyholder - 100
//Layout.fillWidth: true
//text: qsTr("Nummer der Police")
text: model.numberPolicyholder
//width: 300
placeholderText: qsTr("Number of the given policy")
inputMask: "0000-00-000-0000"
background: Rectangle {
radius: 5
border.color: numberPolicyholder.activeFocus ? "#6f1a32" : "lightgrey"
border.width: 2
}
} // numberPolicyholder
} // rowPolicyholder
} // columnBaseData
} // groupBoxKeyData
Pane {
id: groupBoxSelectionData
//title: qsTr("Key data")
implicitWidth: Math.max(switchSecurity.width, comboLawSpec.width) + comboLawSpec.rightPadding + leftPadding
//anchors.right: parent.right
//anchors.fill: parent
//Layout.fillWidth: true
ColumnLayout {
id: columnSelectionData
//width: parent.width
anchors.topMargin: 12
spacing: 4
Switch {
id: switchSecurity
text: qsTr("Security")
//Layout.minimumWidth: 150
//Layout.preferredWidth: 150
Layout.fillWidth: true
anchors.right: parent.right
checked: model.switchSecuritiy ? true : false
indicator: Rectangle {
implicitWidth: 32
implicitHeight: 20
//x: switchSecurity.leftPadding
x: switchSecurity.width - width - switchSecurity.rightPadding
y: parent.height / 2 - height / 2
radius: 13
color: switchSecurity.checked ? "#6f1a32" : "#ffffff"
border.color: switchSecurity.checked ? "#6f1a32" : "#cccccc"
Rectangle {
x: switchSecurity.checked ? parent.width - width : 0
width: 20
height: 20
radius: 13
color: switchSecurity.down ? "#6f1a32" : "#ffffff"
border.color: switchSecurity.checked ? (switchSecurity.down ? "#6f1a32" : "lightgrey") : "#999999"
}
}
contentItem: Text {
text: switchSecurity.text
font: switchSecurity.font
opacity: enabled ? 1.0 : 0.3
color: switchSecurity.down ? "#6f1a32" : "black"
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
//leftPadding: switchSecurity.indicator.width + switchSecurity.spacing
rightPadding: switchSecurity.indicator.width + switchSecurity.spacing
}
} // switchSecurity
Switch {
id: switchSB
text: qsTr("SB")
//Layout.minimumWidth: 150
//Layout.preferredWidth: 150
Layout.fillWidth: true
anchors.right: parent.right
checked: model.switchSB ? true : false
contentItem: Text {
text: switchSB.text
font: switchSB.font
opacity: enabled ? 1.0 : 0.3
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
//leftPadding: switchSB.indicator.width + switchSB.spacing
rightPadding: switchSB.indicator.width + switchSB.spacing
}
indicator: Rectangle {
implicitWidth: 32
implicitHeight: 20
//x: switchSB.leftPadding
x: switchSB.width - width - switchSB.rightPadding
y: parent.height / 2 - height / 2
radius: 13
color: switchSB.checked ? "#6f1a32" : "#ffffff"
border.color: switchSB.checked ? "#6f1a32" : "#cccccc"
Rectangle {
x: switchSB.checked ? parent.width - width : 0
width: 20
height: 20
radius: 13
color: switchSB.down ? "#cccccc" : "#ffffff"
border.color: switchSB.checked ? (switchSB.down ? "#17a81a" : "#6f1a32") : "#999999"
}
}
} // switchSB
ComboBox {
id: comboLawSpec
//textRole: qsTr("field of law")
//Layout.fillWidth: true
Layout.minimumWidth: 100
Layout.preferredWidth: 180
anchors.right: parent.right
rightPadding: 8
leftPadding: 8
model: ["Arbeitsrecht", "Baurecht", "Gesellschaftsrecht", "Verkehrsrecht", "Versicherungsrecht"]
delegate: ItemDelegate {
width: comboLawSpec.width
contentItem: Text {
text: modelData
color: "black"
font: comboLawSpec.font
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
}
highlighted: comboLawSpec.highlightedIndex === index
}
indicator: Canvas {
id: canvas
x: comboLawSpec.width - width - comboLawSpec.rightPadding
y: comboLawSpec.topPadding + (comboLawSpec.availableHeight - height) / 2
width: 12
height: 8
contextType: "2d"
Connections {
target: comboLawSpec
onPressedChanged: canvas.requestPaint()
}
onPaint: {
context.reset();
context.moveTo(0, 0);
context.lineTo(width, 0);
context.lineTo(width / 2, height);
context.closePath();
context.fillStyle = comboLawSpec.pressed ? "#6f1a32" : "grey";
context.fill();
}
}
contentItem: Text {
leftPadding: 0
rightPadding: comboLawSpec.indicator.width + comboLawSpec.spacing
text: comboLawSpec.displayText
font: comboLawSpec.font
color: comboLawSpec.pressed ? "#6f1a32" : "black"
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
background: Rectangle {
implicitWidth: 120
implicitHeight: 40
border.color: comboLawSpec.pressed ? "#6f1a32" : "lightgrey"
radius: 5
border.width: 1
}
popup: Popup {
y: comboLawSpec.height - 1
width: comboLawSpec.width
font.pixelSize: 8
implicitHeight: contentItem.implicitHeight
padding: 5
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: comboLawSpec.popup.visible ? comboLawSpec.delegateModel : null
currentIndex: comboLawSpec.highlightedIndex
ScrollIndicator.vertical: ScrollIndicator { }
}
background: Rectangle {
border.color: "lightgrey"
radius: 5
}
}
} // comboLawSpec
} // groupBoxSelectionData
} // groupBoxSelectonData
} // gridBoxBaseData
} // groupBoxBaseData
GroupBox {
id: groupBoxHarmData
title: qsTr("Data facts")
anchors.top: groupBoxBaseData.bottom
anchors.topMargin: 18
width: parent.width
Layout.fillWidth: true
ColumnLayout {
id: columnHarmData
width: parent.width
anchors.topMargin: 12
Layout.fillWidth: true
spacing: 16
RowLayout {
id: rowNumberHarmReport
//width: pane.availableWidth - 2 * rowNumberHarmReport.spacing
//width: pane.availableWidth - rowNumberHarmReport.spacing
//width: 450
//height: rowNumberHarmReport.implicitHeight
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
visible: true
spacing: 12
Nwx.Label {
id: labelNumberHarmReport
Layout.minimumWidth: 100
//Layout.preferredWidth: 140
Layout.preferredWidth: itemWidth.labelWidth
text: qsTr("Harm report")
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
horizontalAlignment: Qt.AlignHRight
verticalAlignment: Qt.AlignTop
anchors.top: parent.top
anchors.topMargin: 16
} // Label
Flickable {
id: flickableNumberHarmReport
//clip: true
flickableDirection: Flickable.VerticalFlick
Layout.fillWidth: true
height: 120
//anchors.centerIn: parent
//anchors.fill: parent
//focus: true
Keys.onUpPressed: scrollBarNumberHarmReport.decrease()
Keys.onDownPressed: scrollBarNumberHarmReport.increase()
// place a TextArea inside the flickable
TextArea.flickable: TextArea {
id: numberHarmReport
textMargin: 8
//textFormat: TextEdit.RichText
//width: pane.availableWidth - 2 * rowNumberHarmReport.spacing - labelNumberHarmReport.width
//text: qsTr("Initial Text 1st line\n2nd line\n\n\Last line.")
text: model.harmReport
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
//Layout.preferredWidth: rowNumberHarmReport.availableWidth - 2 * rowNumberHarmReport.spacing - labelNumberHarmReport.width
//width: rowPolicyholder - 100
//Layout.preferredWidth: rowNumberHarmReport - 100
Layout.preferredWidth: 300
Layout.maximumHeight: 400
renderType: TextArea.NativeRendering
wrapMode: TextArea.WordWrap
background: Rectangle {
border.color: numberHarmReport.activeFocus ? "#6f1a32" : "lightgrey"
radius: 5
border.width: 2
//implicitWidth: 100
//implicitHeight: 24
} // TextArea
ToolTip {
id: toolTipNumberHarmReport
text: qsTr("Please record all infomation and curcumstances that are relevant to the harm.")
//visible: true
delay: 1500
timeout: 5000
visible: numberHarmReport.hovered
contentItem: Text {
text: toolTipNumberHarmReport.text
font: toolTipNumberHarmReport.font
color: "#6f1a32"
}
background: Rectangle {
border.color: "lightgrey"
}
}
} // numberHarmReport
ScrollIndicator.vertical: ScrollIndicator {
id: scrollIndicatorNumberHarmReport
padding: 5
leftPadding: 5
topPadding: 5
}
ScrollBar.vertical: ScrollBar {
id: scrollBarNumberHarmReport
policy: ScrollBar.AsNeeded
//interactive: true
active: hovered || pressed
//parent: numberHarmReport
//anchors.right: parent.right
//policy: ScrollBar.AlwaysOn
//x: scrollViewNumberHarmReport.mirrored ? 0 : scrollViewNumberHarmReport.width - width
//y: scrollViewNumberHarmReport.topPadding
//height: scrollViewNumberHarmReport.availableHeight
//active: scrollViewNumberHarmReport.ScrollBar.vertical.active
background: Rectangle {
radius: 5
//implicitWidth: 100
//implicitHeight: 24
border.color: "grey"
color: "lightgrey"
border.width: 2
}
} //scrollBarNumberHarmReport
// Only show the scrollbars when the flickableNumberHarmReport is moving.
states: State {
name: "ShowBars"
when: flickableNumberHarmReport.movingVertically
// PropertyChanges { target: verticalScrollBar; opacity: 1 }
}
transitions: Transition {
NumberAnimation { properties: "opacity"; duration: 400 }
}
//height: pane.availableHeight * 3 / 2
//width: Math.max(pane.availableWidth - labelNumberHarmReport.width - rowNumberHarmReport.spacing, Math.min(implicitWidth))
//width: Math.max(pane.availableWidth * 8 / 10, Math.min(pane.availableWidth - rowNumberHarmReport.spacing - labelNumberHarmReport.Width))
//width: implicitwidth
} // flickable
} // rowNumberHarmReport
RowLayout {
id: rowRightsCouncil
//width: pane.availableWidth - 2 * rowNumberHarmReport.spacing
//width: pane.availableWidth - rowNumberHarmReport.spacing
//width: 450
//height: rowNumberHarmReport.implicitHeight
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
visible: true
spacing: 12
Nwx.Label {
id: labelRightsCouncil
Layout.minimumWidth: 100
//Layout.preferredWidth: 140
Layout.preferredWidth: itemWidth.labelWidth
text: qsTr("Rights Council")
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
horizontalAlignment: Qt.AlignHRight
verticalAlignment: Qt.AlignTop
anchors.top: parent.top
anchors.topMargin: 16
} // labelRightsCouncil
Flickable {
id: flickableRightsCouncil
//clip: true
flickableDirection: Flickable.VerticalFlick
Layout.fillWidth: true
height: 120
//anchors.centerIn: parent
//anchors.fill: parent
//focus: true
Keys.onUpPressed: scrollBarRightsCouncil.decrease()
Keys.onDownPressed: scrollBarRightsCouncil.increase()
// place a TextArea inside the flickable
TextArea.flickable: TextArea {
id: rightsCouncil
textMargin: 8
//textFormat: TextEdit.RichText
//text: qsTr("Initial Text 1st line\n2nd line\n\n\Last line.")
text: model.rightsCouncil
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
//Layout.preferredWidth: rowRightsCouncil.availableWidth - 2 * rowRightsCouncil.spacing - labelRightsCouncil.width
//width: rowPolicyholder - 100
//Layout.preferredWidth: rowRightsCouncil - 100
Layout.preferredHeight: 250
Layout.maximumHeight: 400
renderType: TextArea.NativeRendering
wrapMode: TextArea.WordWrap
background: Rectangle {
border.color: rightsCouncil.activeFocus ? "#6f1a32" : "lightgrey"
radius: 5
border.width: 2
//implicitWidth: 100
//implicitHeight: 24
}
ToolTip {
id: toolTipRightsCouncil
text: qsTr("Please record the given rights council.")
//visible: true
delay: 1500
timeout: 5000
visible: rightsCouncil.hovered
contentItem: Text {
text: toolTipRightsCouncil.text
font: toolTipRightsCouncil.font
color: "#6f1a32"
}
background: Rectangle {
border.color: "lightgrey"
}
} // toolTipRightsCouncil
} // rightsCouncil
ScrollIndicator.vertical: ScrollIndicator {
id: scrollIndicatorRightsCouncil
padding: 5
leftPadding: 5
topPadding: 5
}
ScrollBar.vertical: ScrollBar {
id: scrollBarRightsCouncil
policy: ScrollBar.AsNeeded
//interactive: true
active: hovered || pressed
//parent: numberHarmReport
//anchors.right: parent.right
//policy: ScrollBar.AlwaysOn
//x: scrollViewRightsCouncil.mirrored ? 0 : scrollViewRightsCouncil.width - width
//y: scrollViewRightsCouncil.topPadding
//height: scrollViewRightsCouncil.availableHeight
//active: scrollViewRightsCouncil.ScrollBar.vertical.active
background: Rectangle {
radius: 5
//implicitWidth: 100
//implicitHeight: 24
border.color: "grey"
color: "lightgrey"
border.width: 2
}
} // scrollBarRightsCouncil
// Only show the scrollbars when the flickableRightsCouncil is moving.
states: State {
name: "ShowBars"
when: flickableRightsCouncil.movingVertically
// PropertyChanges { target: verticalScrollBar; opacity: 1 }
}
transitions: Transition {
NumberAnimation { properties: "opacity"; duration: 400 }
}
//height: pane.availableHeight * 3 / 2
//width: Math.max(pane.availableWidth - labelRightsCouncil.width - rowRightsCouncil.spacing, Math.min(implicitWidth))
//width: Math.max(pane.availableWidth * 8 / 10, Math.min(pane.availableWidth - rowRightsCouncil.spacing - labelRightsCouncil.Width))
//width: implicitwidth
} // flickable
} // rowRightsCouncil
} // columHarmData
} // groupBoxHarmData
GroupBox {
id: groupBoxMgmtData
title: qsTr("Management data")
anchors.top: groupBoxHarmData.bottom
width: parent.width
anchors.topMargin: 18
Layout.fillWidth: true
ColumnLayout {
id: columnAdminData
width: parent.width
anchors.topMargin: 12
spacing: 16
GroupBox {
id: groupBoxDone
Layout.fillWidth: true
RowLayout {
id: rowDone
Layout.fillWidth: true
//Layout.preferredWidth: 450
ButtonGroup {
id: buttonGroupCME
//buttons: rowRadioCME
}
RowLayout {
id: rowRadioCME
spacing: 12
Nwx.Label {
id: labelDone
Layout.minimumWidth: 100
Layout.preferredWidth: 120
text: qsTr("Done")
//horizontalAlignment: Qt.AlignHLeft
//verticalAlignment: Qt.AlignVCenter
}
RadioButton {
id: buttonDoneYes
ButtonGroup.group: buttonGroupCME
text: qsTr("Yes")
checked: model.switchDone ? true : false
//signal qmlSignal(string msg)
onClicked: advoTrackerClass.buttonDoneYes(text)
//onClicked: qmSignal(text)
}
RadioButton {
id: buttonDoneNo
ButtonGroup.group: buttonGroupCME
text: qsTr("No")
}
RadioButton {
id: buttonDoneCME
ButtonGroup.group: buttonGroupCME
text: qsTr("CME")
checked: model.switchCME ? true : false
//signal qmlSignal(string msg)
//onClicked: qmlSignal(text)
onClicked: {
advoTrackerClass.buttonDoneCME(text)
doneCME: true
}
} // buttonCME
Nwx.TextField {
id: phoneCME
opacity: buttonDoneCME ? 1.0 : 0
Layout.preferredWidth: 250
Layout.maximumWidth: 300
//Layout.preferredWidth: itemWidth.textFieldWidth
//Layout.maximumWidth: itemWidth.textFieldWidth
placeholderText: qsTr("Phone number policieowner")
background: Rectangle {
radius: 5
border.color: buttonDoneCME.activeFocus ? "#6f1a32" : "lightgrey"
border.width: 2
}
} // phoneCME
} // rowRodioCME
/*
ButtonGroup {
id: buttonGroup
}
ListView {
model: [qsTr("Yes"), qsTr("No"), qsTr("CME")]
orientation: ListView.Horizontal
Layout.preferredWidth: 200
delegate: RadioDelegate {
text: modelData
anchors.top: groupBoxDone.top
//checked: index == 0
//ButtonGroup.group: buttonGroup
}
}*/
} // rowDone
} // GroupBoxDone
GroupBox {
id: groupBoxCME
Layout.fillWidth: true
RowLayout {
id: rowCME
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
Nwx.Label {
id: labelCME
Layout.minimumWidth: 100
Layout.preferredWidth: 120
text: qsTr("CME submitted")
horizontalAlignment: Qt.AlignHLeft
verticalAlignment: Qt.AlignTop
}
Row {
RadioButton { text: qsTr("Yes") }
RadioButton { text: qsTr("No") }
}
} // rowCME
} // groupBoxCME
RowLayout {
id: rowComboDone
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
spacing: 12
Nwx.Label {
id: labelcomboDone
Layout.minimumWidth: 100
Layout.preferredWidth: 120
text: qsTr("CME")
horizontalAlignment: Qt.AlignHRight
verticalAlignment: Qt.AlignTop
}
ComboBox {
id: comboDone
//textRole: qsTr("done")
Layout.minimumWidth: 100
Layout.preferredWidth: 180
rightPadding: 8
leftPadding: 8
model: [qsTr("Yes"), qsTr("No"), qsTr("CME")]
delegate: ItemDelegate {
width: comboDone.width
contentItem: Text {
text: modelData
color: "black"
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
}
highlighted: comboDone.highlightedIndex === index
}
indicator: Canvas {
id: canvasComboDone
x: comboDone.width - width - comboDone.rightPadding
y: comboDone.topPadding + (comboDone.availableHeight - height) / 2
width: 12
height: 8
contextType: "2d"
Connections {
target: comboDone
onPressedChanged: canvas.requestPaint()
}
onPaint: {
context.reset();
context.moveTo(0, 0);
context.lineTo(width, 0);
context.lineTo(width / 2, height);
context.closePath();
context.fillStyle = comboDone.pressed ? "#6f1a32" : "grey";
context.fill();
}
}
contentItem: Text {
leftPadding: 0
rightPadding: comboDone.indicator.width + comboDone.spacing
text: comboDone.displayText
//font: lawSpec.font
color: comboDone.pressed ? "#6f1a32" : "black"
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
background: Rectangle {
implicitWidth: 120
implicitHeight: 40
border.color: comboDone.pressed ? "#6f1a32" : "lightgrey"
radius: 5
border.width: 1
}
popup: Popup {
y: comboDone.height - 1
width: comboDone.width
//font.pixelSize: 8
implicitHeight: contentItem.implicitHeight
padding: 5
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: comboDone.popup.visible ? comboDone.delegateModel : null
currentIndex: comboDone.highlightedIndex
ScrollIndicator.vertical: ScrollIndicator { }
}
background: Rectangle {
border.color: "lightgrey"
radius: 5
}
}
} // comboDone
} // rowDone
RowLayout {
id: rowOpitons
CheckBox {
id: checkBoxCME
text: qsTr("Central mandate editing")
checked: model.switchCME ? true : false
//mirrored: true
}
CheckBox {
text: qsTr("Surcharge")
//mirrored: true
checked: model.switchSurcharge ? true : false
}
}
/*
CheckBox {
id: control
text: qsTr("CheckBox")
checked: false
indicator: Rectangle {
implicitWidth: 26
implicitHeight: 26
x: control.width - width - control.rightPadding
//x: control.leftPadding
y: parent.height / 2 - height / 2
radius: 3
border.color: control.down ? "#6f1a32" : "black"
Rectangle {
width: 14
height: 14
x: 6
y: 6
radius: 2
color: control.down ? "#6f1a32" : "#6f1a32"
visible: control.checked
}
}
contentItem: Text {
text: control.text
font: control.font
opacity: enabled ? 1.0 : 0.3
color: control.down ? "#6f1a32" : "black"
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
//leftPadding: control.indicator.width + control.spacing
rightPadding: control.indicator.width + control.spacing
ToolTip.text: qsTr("Tooltip text.")
}
}*/
} //columnAdminData
} // groupBoxMgmtData
} // paneNumberHarmData
} // listNumberHarmData
} // paneNumberHarmAdmin