advotracker_qml: advotracker variant with Qt/Qml GUI
Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
139
advotracker_qml/resources/pages/PageUserDelegate.qml
Executable file
139
advotracker_qml/resources/pages/PageUserDelegate.qml
Executable file
@@ -0,0 +1,139 @@
|
||||
/*
|
||||
* AdvoTracker - Hotline tracking tool 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
|
||||
|
||||
ItemDelegate {
|
||||
id: itemUserList
|
||||
Layout.fillWidth: true
|
||||
width: parent.width
|
||||
anchors.right: parent.fill
|
||||
focus: true
|
||||
|
||||
contentItem: RowLayout {
|
||||
id: rowUserList
|
||||
spacing: 8
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
//focus: true
|
||||
|
||||
Label {
|
||||
id: userId
|
||||
text: model.userId
|
||||
Layout.preferredWidth: 150
|
||||
}
|
||||
Label {
|
||||
id: userName
|
||||
text: model.firstName + " " + model.lastName
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
/*
|
||||
Nwx.IconButton {
|
||||
id: valueUserList
|
||||
text: model.userIcon
|
||||
Layout.preferredWidth: 50
|
||||
}
|
||||
*/
|
||||
} // rowUserList (contentItem)
|
||||
|
||||
// adapt the current item
|
||||
states: State {
|
||||
name: "Current"
|
||||
when: itemUserList.ListView.isCurrentItem
|
||||
PropertyChanges { target: userId ; color: Material.color(Material.primary, Material.ShadeA700) }
|
||||
PropertyChanges { target: userName ; color: Material.color(Material.accent, Material.ShadeA700) }
|
||||
}
|
||||
transitions: Transition {
|
||||
NumberAnimation { properties: "color"; duration: 200 }
|
||||
SpringAnimation { spring: 2; damping: 0.1 }
|
||||
}
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton
|
||||
onPressed: {
|
||||
console.log("Mouse-Press: left; index:", index, "; lastName:", filterModelUser.get(index).lastName)
|
||||
/*PropertyChanges { target: nameUserList ; color: Material.color(Material.primary) }
|
||||
PropertyChanges {
|
||||
target: labelUserList
|
||||
color: Material.color(Material.Red, Material.ShadeA700)
|
||||
}
|
||||
*/
|
||||
itemUserList.ListView.view.currentIndex = index
|
||||
}
|
||||
onDoubleClicked: {
|
||||
console.log("Mouse-Press: double; index:", index, "; lastName:", filterModelUser.get(index).lastName)
|
||||
console.log("Mouse-Press: double; index:", index, "; userId:", filterModelUser.get(index).userId)
|
||||
//stackViewMain.push(componentDetail, { userId: filterModelUser.get(index).userId } )
|
||||
stackViewMain.push("qrc:/pages/PageUserDetail.qml", { userId: filterModelUser.get(index).userId } )
|
||||
}
|
||||
} // MouseArea
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.RightButton
|
||||
onPressed: {
|
||||
console.log("Mouse-Press: right; index:", index, "; userId:", filterModelUser.get(index).userId)
|
||||
itemUserList.ListView.view.currentIndex = index
|
||||
}
|
||||
} // MouseArea
|
||||
|
||||
Keys.onPressed: {
|
||||
console.log("list-item: " + event.key + " : " + event.text)
|
||||
}
|
||||
|
||||
Shortcut {
|
||||
context: Qt.ApplicationShortcut
|
||||
sequence: [ StandardKey.Find ]
|
||||
//onActivated: view.currentIndex++
|
||||
onActivated: {
|
||||
searchToolBar.forceActiveFocus()
|
||||
console.log("Key-Press->Find: Shortcut activated.")
|
||||
}
|
||||
}
|
||||
|
||||
Keys.onUpPressed: {
|
||||
console.log("Key-Press: Up; index:", index, "; UserId:", filterModelUser.get(index).userId)
|
||||
//scrollBarUserList.decrease()
|
||||
}
|
||||
Keys.onDownPressed: scrollBarUserList.increase()
|
||||
|
||||
Keys.onReturnPressed: {
|
||||
itemUserList.ListView.view.currentIndex = index
|
||||
//stackViewMain.push(componentDetail, { userId: "filterModelUser.get(index).userId" } )
|
||||
stackViewMain.push("qrc:/page/PageUserDetail.qml", { userId: filterModelUser.get(index).userId } )
|
||||
}
|
||||
|
||||
Keys.onTabPressed: {
|
||||
// Windows: Ctrl-Tab, Alt+Right, Ctrl-F6
|
||||
// Gnome: Ctrl-Tab
|
||||
console.log("Key-Press: Tab; index:", index, "; iconName:", filterModelUser.get(index).userId)
|
||||
itemUserList.ListView.view.currentIndex = index + 1
|
||||
}
|
||||
Keys.onBacktabPressed: {
|
||||
// Windows: Ctrl-Shift-Tab, Alt+Left, Ctrl-Shift-F6
|
||||
// Gnome: Ctrl-Shift-Tab, Alt+Left
|
||||
console.log("Key-Press: Backtab (Shift+tab); index:", index, "; iconName:", filterModelUser.get(index).userId)
|
||||
itemUserList.ListView.view.currentIndex = index -1
|
||||
}
|
||||
} // itemUserList
|
||||
Reference in New Issue
Block a user