diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 1bdac57a..ceabe270 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -1968,7 +1968,7 @@ Some contents...
-
+
Name
@@ -1998,37 +1998,47 @@ Some contents...
-
+
+ Insert a Row
+
+
+
+
+ Focus not acquired: Please click any item in the form as the target for insertion!
+
+
+
+
Avatar
-
+
Address
-
+
Nickname
-
+
Long String
-
+
Options
-
+
<Previous
-
+
Next>
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 4ba2c182..c86300be 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -2110,7 +2110,7 @@ Some contents...
-
+
Name
名称
@@ -2140,37 +2140,47 @@ Some contents...
清除所有
-
+
+ Insert a Row
+ 插入一行
+
+
+
+ Focus not acquired: Please click any item in the form as the target for insertion!
+ 焦点未获取:请点击表格中的任意一项,作为插入的靶点!
+
+
+
Avatar
头像
-
+
Address
地址
-
+
Nickname
昵称
-
+
Long String
长字符串
-
+
Options
操作
-
+
<Previous
<上一页
-
+
Next>
下一页>
diff --git a/example/qml/page/T_TableView.qml b/example/qml/page/T_TableView.qml
index 27059281..b309c369 100644
--- a/example/qml/page/T_TableView.qml
+++ b/example/qml/page/T_TableView.qml
@@ -13,7 +13,7 @@ FluContentPage{
property var dataSource : []
property int sortType: 0
- property bool seletedAll: true
+ property bool selectedAll: true
property string nameKeyword: ""
onNameKeywordChanged: {
@@ -32,11 +32,11 @@ FluContentPage{
onCheckBoxChanged: {
for(var i =0;i< table_view.rows ;i++){
if(false === table_view.getRow(i).checkbox.options.checked){
- root.seletedAll = false
+ root.selectedAll = false
return
}
}
- root.seletedAll = true
+ root.selectedAll = true
}
onSortTypeChanged: {
@@ -238,12 +238,12 @@ FluContentPage{
Layout.alignment: Qt.AlignVCenter
}
FluCheckBox{
- checked: true === root.seletedAll
+ checked: true === root.selectedAll
animationEnabled: false
Layout.alignment: Qt.AlignVCenter
clickListener: function(){
- root.seletedAll = !root.seletedAll
- var checked = root.seletedAll
+ root.selectedAll = !root.selectedAll
+ var checked = root.selectedAll
itemModel.display = table_view.customItem(com_column_checbox,{"checked":checked})
for(var i =0;i< table_view.rows ;i++){
var rowData = table_view.getRow(i)
@@ -466,6 +466,20 @@ FluContentPage{
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!"))
+ }
+
+ }
+ }
}
}
@@ -588,7 +602,7 @@ FluContentPage{
return avatars[randomIndex];
}
return {
- checkbox: table_view.customItem(com_checbox,{checked:root.seletedAll}),
+ checkbox: table_view.customItem(com_checbox,{checked:root.selectedAll}),
avatar:table_view.customItem(com_avatar,{avatar:getAvatar()}),
name: getRandomName(),
age:getRandomAge(),
@@ -601,7 +615,7 @@ FluContentPage{
}
}
function loadData(page,count){
- root.seletedAll = true
+ root.selectedAll = true
const dataSource = []
for(var i=0;i")
- property int pageCurrent: 0
- property int itemCount: 0
- property int pageButtonCount: 5
- property int pageCount: itemCount>0?Math.ceil(itemCount/__itemPerPage):0
- property int __itemPerPage: 10
- property int __pageButtonHalf: Math.floor(pageButtonCount/2)+1
- id: control
- implicitHeight: 40
- implicitWidth: content.width
- Row{
- id: content
- height: control.height
- spacing: 10
- padding: 10
- FluToggleButton{
- visible: control.pageCount>1
- disabled: control.pageCurrent<=1
- text:control.previousText
- clickListener:function() {
- control.calcNewPage(control.pageCurrent-1);
- }
- }
- Row{
- spacing: 5
- FluToggleButton{
- property int pageNumber:1
- visible: control.pageCount>0
- checked: pageNumber === control.pageCurrent
- text:String(pageNumber)
- clickListener:function() {
- control.calcNewPage(pageNumber);
- }
- }
- FluText{
- visible: (control.pageCount>control.pageButtonCount&&
- control.pageCurrent>control.__pageButtonHalf)
- text: "..."
- }
- Repeater{
- id: button_repeator
- model: (control.pageCount<2)?0:(control.pageCount>=control.pageButtonCount)?(control.pageButtonCount-2):(control.pageCount-2)
- delegate:FluToggleButton{
- property int pageNumber: {
- return (control.pageCurrent<=control.__pageButtonHalf)
- ?(2+index)
- :(control.pageCount-control.pageCurrent<=control.pageButtonCount-control.__pageButtonHalf)
- ?(control.pageCount-button_repeator.count+index)
- :(control.pageCurrent+2+index-control.__pageButtonHalf)
- }
- text:String(pageNumber)
- checked: pageNumber === control.pageCurrent
- clickListener:function(){
- control.calcNewPage(pageNumber);
- }
- }
- }
- FluText{
- visible: (control.pageCount>control.pageButtonCount&&
- control.pageCount-control.pageCurrent>control.pageButtonCount-control.__pageButtonHalf)
- text: "..."
- }
- FluToggleButton{
- property int pageNumber:control.pageCount
- visible: control.pageCount>1
- checked: pageNumber === control.pageCurrent
- text:String(pageNumber)
- clickListener:function(){
- control.calcNewPage(pageNumber);
- }
- }
- }
- FluToggleButton{
- visible: control.pageCount>1
- disabled: control.pageCurrent>=control.pageCount
- text:control.nextText
- clickListener:function() {
- control.calcNewPage(control.pageCurrent+1);
- }
- }
- }
- 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)
- }
-}
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Layouts 1.15
+import FluentUI 1.0
+
+
+Item {
+ signal requestPage(int page, int count)
+
+ property string previousText: qsTr("")
+ property int pageCurrent: 0
+ property int itemCount: 0
+ property int pageButtonCount: 5
+ property int pageCount: itemCount > 0 ? Math.ceil(itemCount / __itemPerPage) : 0
+ property int __itemPerPage: 10
+ property int __pageButtonHalf: Math.floor(pageButtonCount / 2) + 1
+ property Component header: null
+ property Component footer: null
+ id: control
+ implicitHeight: 40
+ implicitWidth: content.width
+ Row {
+ id: content
+ height: control.height
+ spacing: 10
+ padding: 10
+ Loader {
+ sourceComponent: header
+ }
+ FluToggleButton {
+ visible: control.pageCount > 1
+ disabled: control.pageCurrent <= 1
+ text: control.previousText
+ clickListener: function () {
+ control.calcNewPage(control.pageCurrent - 1);
+ }
+ }
+ Row {
+ spacing: 5
+
+ FluToggleButton {
+ property int pageNumber: 1
+ visible: control.pageCount > 0
+ checked: pageNumber === control.pageCurrent
+ text: String(pageNumber)
+ clickListener: function () {
+ control.calcNewPage(pageNumber);
+ }
+ }
+ FluText {
+ visible: (control.pageCount > control.pageButtonCount &&
+ control.pageCurrent > control.__pageButtonHalf)
+ text: "..."
+ }
+ Repeater {
+ id: button_repeator
+ model: (control.pageCount < 2) ? 0 : (control.pageCount >= control.pageButtonCount) ? (control.pageButtonCount - 2) : (control.pageCount - 2)
+ delegate: FluToggleButton {
+ property int pageNumber: {
+ return (control.pageCurrent <= control.__pageButtonHalf)
+ ? (2 + index)
+ : (control.pageCount - control.pageCurrent <= control.pageButtonCount - control.__pageButtonHalf)
+ ? (control.pageCount - button_repeator.count + index)
+ : (control.pageCurrent + 2 + index - control.__pageButtonHalf)
+ }
+ text: String(pageNumber)
+ checked: pageNumber === control.pageCurrent
+ clickListener: function () {
+ control.calcNewPage(pageNumber);
+ }
+ }
+ }
+ FluText {
+ visible: (control.pageCount > control.pageButtonCount &&
+ control.pageCount - control.pageCurrent > control.pageButtonCount - control.__pageButtonHalf)
+ text: "..."
+ }
+ FluToggleButton {
+ property int pageNumber: control.pageCount
+ visible: control.pageCount > 1
+ checked: pageNumber === control.pageCurrent
+ text: String(pageNumber)
+ clickListener: function () {
+ control.calcNewPage(pageNumber);
+ }
+ }
+ }
+ FluToggleButton {
+ visible: control.pageCount > 1
+ disabled: control.pageCurrent >= control.pageCount
+ text: control.nextText
+ clickListener: function () {
+ control.calcNewPage(control.pageCurrent + 1);
+ }
+ }
+ Loader {
+ sourceComponent: footer
+ }
+ }
+
+ 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)
+ }
+
+}
diff --git a/src/Qt6/imports/FluentUI/Controls/FluPagination.qml b/src/Qt6/imports/FluentUI/Controls/FluPagination.qml
index 37f6807d..91bff6e7 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluPagination.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluPagination.qml
@@ -1,100 +1,111 @@
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Layouts
-import FluentUI
-
-Item {
- signal requestPage(int page,int count)
- property string previousText: qsTr("")
- property int pageCurrent: 0
- property int itemCount: 0
- property int pageButtonCount: 5
- property int pageCount: itemCount>0?Math.ceil(itemCount/__itemPerPage):0
- property int __itemPerPage: 10
- property int __pageButtonHalf: Math.floor(pageButtonCount/2)+1
- id: control
- implicitHeight: 40
- implicitWidth: content.width
- Row{
- id: content
- height: control.height
- spacing: 10
- padding: 10
- FluToggleButton{
- visible: control.pageCount>1
- disabled: control.pageCurrent<=1
- text:control.previousText
- clickListener:function() {
- control.calcNewPage(control.pageCurrent-1);
- }
- }
- Row{
- spacing: 5
- FluToggleButton{
- property int pageNumber:1
- visible: control.pageCount>0
- checked: pageNumber === control.pageCurrent
- text:String(pageNumber)
- clickListener:function() {
- control.calcNewPage(pageNumber);
- }
- }
- FluText{
- visible: (control.pageCount>control.pageButtonCount&&
- control.pageCurrent>control.__pageButtonHalf)
- text: "..."
- }
- Repeater{
- id: button_repeator
- model: (control.pageCount<2)?0:(control.pageCount>=control.pageButtonCount)?(control.pageButtonCount-2):(control.pageCount-2)
- delegate:FluToggleButton{
- property int pageNumber: {
- return (control.pageCurrent<=control.__pageButtonHalf)
- ?(2+index)
- :(control.pageCount-control.pageCurrent<=control.pageButtonCount-control.__pageButtonHalf)
- ?(control.pageCount-button_repeator.count+index)
- :(control.pageCurrent+2+index-control.__pageButtonHalf)
- }
- text:String(pageNumber)
- checked: pageNumber === control.pageCurrent
- clickListener:function(){
- control.calcNewPage(pageNumber);
- }
- }
- }
- FluText{
- visible: (control.pageCount>control.pageButtonCount&&
- control.pageCount-control.pageCurrent>control.pageButtonCount-control.__pageButtonHalf)
- text: "..."
- }
- FluToggleButton{
- property int pageNumber:control.pageCount
- visible: control.pageCount>1
- checked: pageNumber === control.pageCurrent
- text:String(pageNumber)
- clickListener:function(){
- control.calcNewPage(pageNumber);
- }
- }
- }
- FluToggleButton{
- visible: control.pageCount>1
- disabled: control.pageCurrent>=control.pageCount
- text:control.nextText
- clickListener:function() {
- control.calcNewPage(control.pageCurrent+1);
- }
- }
- }
- 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)
- }
-}
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Layouts 1.15
+import FluentUI 1.0
+
+Item {
+ signal requestPage(int page, int count)
+
+ property string previousText: qsTr("")
+ property int pageCurrent: 0
+ property int itemCount: 0
+ property int pageButtonCount: 5
+ property int pageCount: itemCount > 0 ? Math.ceil(itemCount / __itemPerPage) : 0
+ property int __itemPerPage: 10
+ property int __pageButtonHalf: Math.floor(pageButtonCount / 2) + 1
+ property Component header: null
+ property Component footer: null
+ id: control
+ implicitHeight: 40
+ implicitWidth: content.width
+ Row {
+ id: content
+ height: control.height
+ spacing: 10
+ padding: 10
+ Loader {
+ sourceComponent: header
+ }
+ FluToggleButton {
+ visible: control.pageCount > 1
+ disabled: control.pageCurrent <= 1
+ text: control.previousText
+ clickListener: function () {
+ control.calcNewPage(control.pageCurrent - 1);
+ }
+ }
+ Row {
+ spacing: 5
+
+ FluToggleButton {
+ property int pageNumber: 1
+ visible: control.pageCount > 0
+ checked: pageNumber === control.pageCurrent
+ text: String(pageNumber)
+ clickListener: function () {
+ control.calcNewPage(pageNumber);
+ }
+ }
+ FluText {
+ visible: (control.pageCount > control.pageButtonCount &&
+ control.pageCurrent > control.__pageButtonHalf)
+ text: "..."
+ }
+ Repeater {
+ id: button_repeator
+ model: (control.pageCount < 2) ? 0 : (control.pageCount >= control.pageButtonCount) ? (control.pageButtonCount - 2) : (control.pageCount - 2)
+ delegate: FluToggleButton {
+ property int pageNumber: {
+ return (control.pageCurrent <= control.__pageButtonHalf)
+ ? (2 + index)
+ : (control.pageCount - control.pageCurrent <= control.pageButtonCount - control.__pageButtonHalf)
+ ? (control.pageCount - button_repeator.count + index)
+ : (control.pageCurrent + 2 + index - control.__pageButtonHalf)
+ }
+ text: String(pageNumber)
+ checked: pageNumber === control.pageCurrent
+ clickListener: function () {
+ control.calcNewPage(pageNumber);
+ }
+ }
+ }
+ FluText {
+ visible: (control.pageCount > control.pageButtonCount &&
+ control.pageCount - control.pageCurrent > control.pageButtonCount - control.__pageButtonHalf)
+ text: "..."
+ }
+ FluToggleButton {
+ property int pageNumber: control.pageCount
+ visible: control.pageCount > 1
+ checked: pageNumber === control.pageCurrent
+ text: String(pageNumber)
+ clickListener: function () {
+ control.calcNewPage(pageNumber);
+ }
+ }
+ }
+ FluToggleButton {
+ visible: control.pageCount > 1
+ disabled: control.pageCurrent >= control.pageCount
+ text: control.nextText
+ clickListener: function () {
+ control.calcNewPage(control.pageCurrent + 1);
+ }
+ }
+ Loader {
+ sourceComponent: footer
+ }
+ }
+
+ 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)
+ }
+
+}