advotracker_qml: advotracker variant with Qt/Qml GUI
Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
976
advotracker_qml/resources/pages/PaneNumberHarmData.qml
Executable file
976
advotracker_qml/resources/pages/PaneNumberHarmData.qml
Executable file
@@ -0,0 +1,976 @@
|
||||
/*
|
||||
* 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
|
||||
Reference in New Issue
Block a user