Compare commits

..

No commits in common. "2d4e61445e28c4f428d487b6d8438f025f2a1e2e" and "24fdff7e3591ff4b380d75e8d1d7163c39420234" have entirely different histories.

5 changed files with 224 additions and 281 deletions

View File

@ -1968,7 +1968,7 @@ Some contents...</source>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="177"/> <location filename="qml/page/T_TableView.qml" line="177"/>
<location filename="qml/page/T_TableView.qml" line="513"/> <location filename="qml/page/T_TableView.qml" line="499"/>
<source>Name</source> <source>Name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1998,47 +1998,37 @@ Some contents...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="470"/> <location filename="qml/page/T_TableView.qml" line="494"/>
<source>Insert a Row</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TableView.qml" line="478"/>
<source>Focus not acquired: Please click any item in the form as the target for insertion!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TableView.qml" line="508"/>
<source>Avatar</source> <source>Avatar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="526"/> <location filename="qml/page/T_TableView.qml" line="512"/>
<source>Address</source> <source>Address</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="534"/> <location filename="qml/page/T_TableView.qml" line="520"/>
<source>Nickname</source> <source>Nickname</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="541"/> <location filename="qml/page/T_TableView.qml" line="527"/>
<source>Long String</source> <source>Long String</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="549"/> <location filename="qml/page/T_TableView.qml" line="535"/>
<source>Options</source> <source>Options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="568"/> <location filename="qml/page/T_TableView.qml" line="554"/>
<source>&lt;Previous</source> <source>&lt;Previous</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="569"/> <location filename="qml/page/T_TableView.qml" line="555"/>
<source>Next&gt;</source> <source>Next&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -2110,7 +2110,7 @@ Some contents...</source>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="177"/> <location filename="qml/page/T_TableView.qml" line="177"/>
<location filename="qml/page/T_TableView.qml" line="513"/> <location filename="qml/page/T_TableView.qml" line="499"/>
<source>Name</source> <source>Name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2140,47 +2140,37 @@ Some contents...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="470"/> <location filename="qml/page/T_TableView.qml" line="494"/>
<source>Insert a Row</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TableView.qml" line="478"/>
<source>Focus not acquired: Please click any item in the form as the target for insertion!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TableView.qml" line="508"/>
<source>Avatar</source> <source>Avatar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="526"/> <location filename="qml/page/T_TableView.qml" line="512"/>
<source>Address</source> <source>Address</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="534"/> <location filename="qml/page/T_TableView.qml" line="520"/>
<source>Nickname</source> <source>Nickname</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="541"/> <location filename="qml/page/T_TableView.qml" line="527"/>
<source>Long String</source> <source>Long String</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="549"/> <location filename="qml/page/T_TableView.qml" line="535"/>
<source>Options</source> <source>Options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="568"/> <location filename="qml/page/T_TableView.qml" line="554"/>
<source>&lt;Previous</source> <source>&lt;Previous</source>
<translation type="unfinished">&lt;</translation> <translation type="unfinished">&lt;</translation>
</message> </message>
<message> <message>
<location filename="qml/page/T_TableView.qml" line="569"/> <location filename="qml/page/T_TableView.qml" line="555"/>
<source>Next&gt;</source> <source>Next&gt;</source>
<translation type="unfinished">&gt;</translation> <translation type="unfinished">&gt;</translation>
</message> </message>

View File

@ -13,7 +13,7 @@ FluContentPage{
property var dataSource : [] property var dataSource : []
property int sortType: 0 property int sortType: 0
property bool selectedAll: true property bool seletedAll: true
property string nameKeyword: "" property string nameKeyword: ""
onNameKeywordChanged: { onNameKeywordChanged: {
@ -32,11 +32,11 @@ FluContentPage{
onCheckBoxChanged: { onCheckBoxChanged: {
for(var i =0;i< table_view.rows ;i++){ for(var i =0;i< table_view.rows ;i++){
if(false === table_view.getRow(i).checkbox.options.checked){ if(false === table_view.getRow(i).checkbox.options.checked){
root.selectedAll = false root.seletedAll = false
return return
} }
} }
root.selectedAll = true root.seletedAll = true
} }
onSortTypeChanged: { onSortTypeChanged: {
@ -238,12 +238,12 @@ FluContentPage{
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
} }
FluCheckBox{ FluCheckBox{
checked: true === root.selectedAll checked: true === root.seletedAll
animationEnabled: false animationEnabled: false
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
clickListener: function(){ clickListener: function(){
root.selectedAll = !root.selectedAll root.seletedAll = !root.seletedAll
var checked = root.selectedAll var checked = root.seletedAll
itemModel.display = table_view.customItem(com_column_checbox,{"checked":checked}) itemModel.display = table_view.customItem(com_column_checbox,{"checked":checked})
for(var i =0;i< table_view.rows ;i++){ for(var i =0;i< table_view.rows ;i++){
var rowData = table_view.getRow(i) var rowData = table_view.getRow(i)
@ -466,20 +466,6 @@ FluContentPage{
table_view.appendRow(genTestObject()) table_view.appendRow(genTestObject())
} }
} }
FluButton{
text: qsTr("Insert a Row")
onClicked: {
if(typeof table_view.current !== 'undefined'){
var newLine = genTestObject()
var currentLine = dataSource.findIndex(obj => obj._key === table_view.current._key)
root.dataSource.splice(currentLine, 0, newLine);
table_view.dataSource = root.dataSource
}else{
showWarning(qsTr("Focus not acquired: Please click any item in the form as the target for insertion!"))
}
}
}
} }
} }
@ -602,7 +588,7 @@ FluContentPage{
return avatars[randomIndex]; return avatars[randomIndex];
} }
return { return {
checkbox: table_view.customItem(com_checbox,{checked:root.selectedAll}), checkbox: table_view.customItem(com_checbox,{checked:root.seletedAll}),
avatar:table_view.customItem(com_avatar,{avatar:getAvatar()}), avatar:table_view.customItem(com_avatar,{avatar:getAvatar()}),
name: getRandomName(), name: getRandomName(),
age:getRandomAge(), age:getRandomAge(),
@ -615,7 +601,7 @@ FluContentPage{
} }
} }
function loadData(page,count){ function loadData(page,count){
root.selectedAll = true root.seletedAll = true
const dataSource = [] const dataSource = []
for(var i=0;i<count;i++){ for(var i=0;i<count;i++){
dataSource.push(genTestObject()) dataSource.push(genTestObject())

View File

@ -1,112 +1,100 @@
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import FluentUI 1.0 import FluentUI 1.0
Item {
Item { signal requestPage(int page,int count)
signal requestPage(int page, int count) property string previousText: qsTr("<Previous")
property string nextText: qsTr("Next>")
property string previousText: qsTr("<Previous") property int pageCurrent: 0
property string nextText: qsTr("Next>") property int itemCount: 0
property int pageCurrent: 0 property int pageButtonCount: 5
property int itemCount: 0 property int pageCount: itemCount>0?Math.ceil(itemCount/__itemPerPage):0
property int pageButtonCount: 5 property int __itemPerPage: 10
property int pageCount: itemCount > 0 ? Math.ceil(itemCount / __itemPerPage) : 0 property int __pageButtonHalf: Math.floor(pageButtonCount/2)+1
property int __itemPerPage: 10 id: control
property int __pageButtonHalf: Math.floor(pageButtonCount / 2) + 1 implicitHeight: 40
property Component header: null implicitWidth: content.width
property Component footer: null Row{
id: control id: content
implicitHeight: 40 height: control.height
implicitWidth: content.width spacing: 10
Row { padding: 10
id: content FluToggleButton{
height: control.height visible: control.pageCount>1
spacing: 10 disabled: control.pageCurrent<=1
padding: 10 text:control.previousText
Loader { clickListener:function() {
sourceComponent: header control.calcNewPage(control.pageCurrent-1);
} }
FluToggleButton { }
visible: control.pageCount > 1 Row{
disabled: control.pageCurrent <= 1 spacing: 5
text: control.previousText FluToggleButton{
clickListener: function () { property int pageNumber:1
control.calcNewPage(control.pageCurrent - 1); visible: control.pageCount>0
} checked: pageNumber === control.pageCurrent
} text:String(pageNumber)
Row { clickListener:function() {
spacing: 5 control.calcNewPage(pageNumber);
}
FluToggleButton { }
property int pageNumber: 1 FluText{
visible: control.pageCount > 0 visible: (control.pageCount>control.pageButtonCount&&
checked: pageNumber === control.pageCurrent control.pageCurrent>control.__pageButtonHalf)
text: String(pageNumber) text: "..."
clickListener: function () { }
control.calcNewPage(pageNumber); Repeater{
} id: button_repeator
} model: (control.pageCount<2)?0:(control.pageCount>=control.pageButtonCount)?(control.pageButtonCount-2):(control.pageCount-2)
FluText { delegate:FluToggleButton{
visible: (control.pageCount > control.pageButtonCount && property int pageNumber: {
control.pageCurrent > control.__pageButtonHalf) return (control.pageCurrent<=control.__pageButtonHalf)
text: "..." ?(2+index)
} :(control.pageCount-control.pageCurrent<=control.pageButtonCount-control.__pageButtonHalf)
Repeater { ?(control.pageCount-button_repeator.count+index)
id: button_repeator :(control.pageCurrent+2+index-control.__pageButtonHalf)
model: (control.pageCount < 2) ? 0 : (control.pageCount >= control.pageButtonCount) ? (control.pageButtonCount - 2) : (control.pageCount - 2) }
delegate: FluToggleButton { text:String(pageNumber)
property int pageNumber: { checked: pageNumber === control.pageCurrent
return (control.pageCurrent <= control.__pageButtonHalf) clickListener:function(){
? (2 + index) control.calcNewPage(pageNumber);
: (control.pageCount - control.pageCurrent <= control.pageButtonCount - control.__pageButtonHalf) }
? (control.pageCount - button_repeator.count + index) }
: (control.pageCurrent + 2 + index - control.__pageButtonHalf) }
} FluText{
text: String(pageNumber) visible: (control.pageCount>control.pageButtonCount&&
checked: pageNumber === control.pageCurrent control.pageCount-control.pageCurrent>control.pageButtonCount-control.__pageButtonHalf)
clickListener: function () { text: "..."
control.calcNewPage(pageNumber); }
} FluToggleButton{
} property int pageNumber:control.pageCount
} visible: control.pageCount>1
FluText { checked: pageNumber === control.pageCurrent
visible: (control.pageCount > control.pageButtonCount && text:String(pageNumber)
control.pageCount - control.pageCurrent > control.pageButtonCount - control.__pageButtonHalf) clickListener:function(){
text: "..." control.calcNewPage(pageNumber);
} }
FluToggleButton { }
property int pageNumber: control.pageCount }
visible: control.pageCount > 1 FluToggleButton{
checked: pageNumber === control.pageCurrent visible: control.pageCount>1
text: String(pageNumber) disabled: control.pageCurrent>=control.pageCount
clickListener: function () { text:control.nextText
control.calcNewPage(pageNumber); clickListener:function() {
} control.calcNewPage(control.pageCurrent+1);
} }
} }
FluToggleButton { }
visible: control.pageCount > 1 function calcNewPage(page)
disabled: control.pageCurrent >= control.pageCount {
text: control.nextText if(!page)
clickListener: function () { return
control.calcNewPage(control.pageCurrent + 1); let page_num=Number(page)
} if(page_num<1||page_num>control.pageCount||page_num===control.pageCurrent)
} return
Loader { control.pageCurrent=page_num
sourceComponent: footer control.requestPage(page_num,control.__itemPerPage)
} }
} }
function calcNewPage(page) {
if (!page)
return
let page_num = Number(page)
if (page_num < 1 || page_num > control.pageCount || page_num === control.pageCurrent)
return
control.pageCurrent = page_num
control.requestPage(page_num, control.__itemPerPage)
}
}

View File

@ -1,111 +1,100 @@
import QtQuick 2.15 import QtQuick
import QtQuick.Controls 2.15 import QtQuick.Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import FluentUI 1.0 import FluentUI
Item { Item {
signal requestPage(int page, int count) signal requestPage(int page,int count)
property string previousText: qsTr("<Previous")
property string previousText: qsTr("<Previous") property string nextText: qsTr("Next>")
property string nextText: qsTr("Next>") property int pageCurrent: 0
property int pageCurrent: 0 property int itemCount: 0
property int itemCount: 0 property int pageButtonCount: 5
property int pageButtonCount: 5 property int pageCount: itemCount>0?Math.ceil(itemCount/__itemPerPage):0
property int pageCount: itemCount > 0 ? Math.ceil(itemCount / __itemPerPage) : 0 property int __itemPerPage: 10
property int __itemPerPage: 10 property int __pageButtonHalf: Math.floor(pageButtonCount/2)+1
property int __pageButtonHalf: Math.floor(pageButtonCount / 2) + 1 id: control
property Component header: null implicitHeight: 40
property Component footer: null implicitWidth: content.width
id: control Row{
implicitHeight: 40 id: content
implicitWidth: content.width height: control.height
Row { spacing: 10
id: content padding: 10
height: control.height FluToggleButton{
spacing: 10 visible: control.pageCount>1
padding: 10 disabled: control.pageCurrent<=1
Loader { text:control.previousText
sourceComponent: header clickListener:function() {
} control.calcNewPage(control.pageCurrent-1);
FluToggleButton { }
visible: control.pageCount > 1 }
disabled: control.pageCurrent <= 1 Row{
text: control.previousText spacing: 5
clickListener: function () { FluToggleButton{
control.calcNewPage(control.pageCurrent - 1); property int pageNumber:1
} visible: control.pageCount>0
} checked: pageNumber === control.pageCurrent
Row { text:String(pageNumber)
spacing: 5 clickListener:function() {
control.calcNewPage(pageNumber);
FluToggleButton { }
property int pageNumber: 1 }
visible: control.pageCount > 0 FluText{
checked: pageNumber === control.pageCurrent visible: (control.pageCount>control.pageButtonCount&&
text: String(pageNumber) control.pageCurrent>control.__pageButtonHalf)
clickListener: function () { text: "..."
control.calcNewPage(pageNumber); }
} Repeater{
} id: button_repeator
FluText { model: (control.pageCount<2)?0:(control.pageCount>=control.pageButtonCount)?(control.pageButtonCount-2):(control.pageCount-2)
visible: (control.pageCount > control.pageButtonCount && delegate:FluToggleButton{
control.pageCurrent > control.__pageButtonHalf) property int pageNumber: {
text: "..." return (control.pageCurrent<=control.__pageButtonHalf)
} ?(2+index)
Repeater { :(control.pageCount-control.pageCurrent<=control.pageButtonCount-control.__pageButtonHalf)
id: button_repeator ?(control.pageCount-button_repeator.count+index)
model: (control.pageCount < 2) ? 0 : (control.pageCount >= control.pageButtonCount) ? (control.pageButtonCount - 2) : (control.pageCount - 2) :(control.pageCurrent+2+index-control.__pageButtonHalf)
delegate: FluToggleButton { }
property int pageNumber: { text:String(pageNumber)
return (control.pageCurrent <= control.__pageButtonHalf) checked: pageNumber === control.pageCurrent
? (2 + index) clickListener:function(){
: (control.pageCount - control.pageCurrent <= control.pageButtonCount - control.__pageButtonHalf) control.calcNewPage(pageNumber);
? (control.pageCount - button_repeator.count + index) }
: (control.pageCurrent + 2 + index - control.__pageButtonHalf) }
} }
text: String(pageNumber) FluText{
checked: pageNumber === control.pageCurrent visible: (control.pageCount>control.pageButtonCount&&
clickListener: function () { control.pageCount-control.pageCurrent>control.pageButtonCount-control.__pageButtonHalf)
control.calcNewPage(pageNumber); text: "..."
} }
} FluToggleButton{
} property int pageNumber:control.pageCount
FluText { visible: control.pageCount>1
visible: (control.pageCount > control.pageButtonCount && checked: pageNumber === control.pageCurrent
control.pageCount - control.pageCurrent > control.pageButtonCount - control.__pageButtonHalf) text:String(pageNumber)
text: "..." clickListener:function(){
} control.calcNewPage(pageNumber);
FluToggleButton { }
property int pageNumber: control.pageCount }
visible: control.pageCount > 1 }
checked: pageNumber === control.pageCurrent FluToggleButton{
text: String(pageNumber) visible: control.pageCount>1
clickListener: function () { disabled: control.pageCurrent>=control.pageCount
control.calcNewPage(pageNumber); text:control.nextText
} clickListener:function() {
} control.calcNewPage(control.pageCurrent+1);
} }
FluToggleButton { }
visible: control.pageCount > 1 }
disabled: control.pageCurrent >= control.pageCount function calcNewPage(page)
text: control.nextText {
clickListener: function () { if(!page)
control.calcNewPage(control.pageCurrent + 1); return
} let page_num=Number(page)
} if(page_num<1||page_num>control.pageCount||page_num===control.pageCurrent)
Loader { return
sourceComponent: footer control.pageCurrent=page_num
} control.requestPage(page_num,control.__itemPerPage)
} }
}
function calcNewPage(page) {
if (!page)
return
let page_num = Number(page)
if (page_num < 1 || page_num > control.pageCount || page_num === control.pageCurrent)
return
control.pageCurrent = page_num
control.requestPage(page_num, control.__itemPerPage)
}
}