This commit is contained in:
zhuzichu 2023-10-17 14:30:43 +08:00
parent 9b5167d92e
commit 0eacc177d0
4 changed files with 354 additions and 338 deletions

View File

@ -42,10 +42,10 @@ Rectangle {
var cellPosition = cellItem.mapToItem(scroll_table, 0, 0) var cellPosition = cellItem.mapToItem(scroll_table, 0, 0)
item_loader.column = column item_loader.column = column
item_loader.row = row item_loader.row = row
item_loader.x = table_view.contentX + cellPosition.x item_loader_layout.x = table_view.contentX + cellPosition.x
item_loader.y = table_view.contentY + cellPosition.y item_loader_layout.y = table_view.contentY + cellPosition.y
item_loader.width = table_view.columnWidthProvider(column) item_loader_layout.width = table_view.columnWidthProvider(column)
item_loader.height = table_view.rowHeightProvider(row) item_loader_layout.height = table_view.rowHeightProvider(row)
item_loader.display = display item_loader.display = display
var obj =columnSource[column].editDelegate var obj =columnSource[column].editDelegate
if(obj){ if(obj){
@ -165,12 +165,22 @@ Rectangle {
} }
} }
} }
ScrollView{
MouseArea{
id:scroll_table id:scroll_table
hoverEnabled: true
anchors.left: header_vertical.right anchors.left: header_vertical.right
anchors.top: header_horizontal.bottom anchors.top: header_horizontal.bottom
anchors.right: parent.right anchors.right: parent.right
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
onExited: {
d.rowHoverIndex = -1
}
onCanceled: {
d.rowHoverIndex = -1
}
ScrollView{
anchors.fill: parent
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
ScrollBar.vertical.policy: ScrollBar.AlwaysOff ScrollBar.vertical.policy: ScrollBar.AlwaysOff
TableView { TableView {
@ -250,11 +260,6 @@ Rectangle {
} }
return w return w
} }
Rectangle{
anchors.fill: parent
visible: !item_loader.sourceComponent
color: "#00000000"
}
Rectangle{ Rectangle{
height: 18 height: 18
radius: 1.5 radius: 1.5
@ -317,42 +322,38 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
hoverEnabled: true hoverEnabled: true
z:99 z:99
onContainsMouseChanged: { onPositionChanged: {
if(containsMouse){
d.rowHoverIndex = row d.rowHoverIndex = row
}else{ }
onEntered: {
d.rowHoverIndex = row
}
}
}
}
MouseArea{
id:item_loader_layout
acceptedButtons: Qt.NoButton
visible: item_loader.sourceComponent
hoverEnabled: true
z:2
onEntered: {
d.rowHoverIndex = -1 d.rowHoverIndex = -1
} }
}
}
}
}
Loader{ Loader{
id:item_loader id:item_loader
z:2
property var display property var display
property int column property int column
property int row property int row
property var tableView: control property var tableView: control
sourceComponent: undefined sourceComponent: undefined
anchors.fill: parent
onDisplayChanged: { onDisplayChanged: {
var obj = table_model.getRow(row) var obj = table_model.getRow(row)
obj[columnSource[column].dataIndex] = display obj[columnSource[column].dataIndex] = display
table_model.setRow(row,obj) table_model.setRow(row,obj)
} }
} }
MouseArea{
acceptedButtons: Qt.NoButton
anchors.fill: item_loader
enabled: item_loader.sourceComponent
hoverEnabled: true
z:10
onContainsMouseChanged: {
if(containsMouse){
d.rowHoverIndex = item_loader.row
}else{
d.rowHoverIndex = -1
}
} }
} }
} }
@ -360,7 +361,6 @@ Rectangle {
id:com_handle id:com_handle
Item {} Item {}
} }
Component{ Component{
id:com_column_text id:com_column_text
FluText { FluText {

View File

@ -37,7 +37,15 @@ TextField{
return placeholderNormalColor return placeholderNormalColor
} }
selectByMouse: true selectByMouse: true
rightPadding: icon_end.visible ? 66 : 40 rightPadding: {
var w = 30
if(control.cleanEnabled === false){
w = 0
}
if(control.readOnly)
w = 0
return icon_end.visible ? w+36 : w+10
}
background: FluTextBoxBackground{ background: FluTextBoxBackground{
inputItem: control inputItem: control
implicitWidth: 240 implicitWidth: 240

View File

@ -43,10 +43,10 @@ Rectangle {
var cellPosition = cellItem.mapToItem(scroll_table, 0, 0) var cellPosition = cellItem.mapToItem(scroll_table, 0, 0)
item_loader.column = column item_loader.column = column
item_loader.row = row item_loader.row = row
item_loader.x = table_view.contentX + cellPosition.x item_loader_layout.x = table_view.contentX + cellPosition.x
item_loader.y = table_view.contentY + cellPosition.y item_loader_layout.y = table_view.contentY + cellPosition.y
item_loader.width = table_view.columnWidthProvider(column) item_loader_layout.width = table_view.columnWidthProvider(column)
item_loader.height = table_view.rowHeightProvider(row) item_loader_layout.height = table_view.rowHeightProvider(row)
item_loader.display = display item_loader.display = display
var obj =columnSource[column].editDelegate var obj =columnSource[column].editDelegate
if(obj){ if(obj){
@ -166,12 +166,22 @@ Rectangle {
} }
} }
} }
ScrollView{
MouseArea{
id:scroll_table id:scroll_table
hoverEnabled: true
anchors.left: header_vertical.right anchors.left: header_vertical.right
anchors.top: header_horizontal.bottom anchors.top: header_horizontal.bottom
anchors.right: parent.right anchors.right: parent.right
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
onExited: {
d.rowHoverIndex = -1
}
onCanceled: {
d.rowHoverIndex = -1
}
ScrollView{
anchors.fill: parent
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
ScrollBar.vertical.policy: ScrollBar.AlwaysOff ScrollBar.vertical.policy: ScrollBar.AlwaysOff
TableView { TableView {
@ -251,11 +261,6 @@ Rectangle {
} }
return w return w
} }
Rectangle{
anchors.fill: parent
visible: !item_loader.sourceComponent
color: "#00000000"
}
Rectangle{ Rectangle{
height: 18 height: 18
radius: 1.5 radius: 1.5
@ -318,42 +323,38 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
hoverEnabled: true hoverEnabled: true
z:99 z:99
onContainsMouseChanged: { onPositionChanged: {
if(containsMouse){
d.rowHoverIndex = row d.rowHoverIndex = row
}else{ }
onEntered: {
d.rowHoverIndex = row
}
}
}
}
MouseArea{
id:item_loader_layout
acceptedButtons: Qt.NoButton
visible: item_loader.sourceComponent
hoverEnabled: true
z:2
onEntered: {
d.rowHoverIndex = -1 d.rowHoverIndex = -1
} }
}
}
}
}
Loader{ Loader{
id:item_loader id:item_loader
z:2
property var display property var display
property int column property int column
property int row property int row
property var tableView: control property var tableView: control
sourceComponent: undefined sourceComponent: undefined
anchors.fill: parent
onDisplayChanged: { onDisplayChanged: {
var obj = table_model.getRow(row) var obj = table_model.getRow(row)
obj[columnSource[column].dataIndex] = display obj[columnSource[column].dataIndex] = display
table_model.setRow(row,obj) table_model.setRow(row,obj)
} }
} }
MouseArea{
acceptedButtons: Qt.NoButton
anchors.fill: item_loader
enabled: item_loader.sourceComponent
hoverEnabled: true
z:10
onContainsMouseChanged: {
if(containsMouse){
d.rowHoverIndex = item_loader.row
}else{
d.rowHoverIndex = -1
}
} }
} }
} }
@ -361,7 +362,6 @@ Rectangle {
id:com_handle id:com_handle
Item {} Item {}
} }
Component{ Component{
id:com_column_text id:com_column_text
FluText { FluText {

View File

@ -38,7 +38,15 @@ TextField{
return placeholderNormalColor return placeholderNormalColor
} }
selectByMouse: true selectByMouse: true
rightPadding: icon_end.visible ? 66 : 40 rightPadding: {
var w = 30
if(control.cleanEnabled === false){
w = 0
}
if(control.readOnly)
w = 0
return icon_end.visible ? w+36 : w+10
}
background: FluTextBoxBackground{ background: FluTextBoxBackground{
inputItem: control inputItem: control
implicitWidth: 240 implicitWidth: 240