mirror of
https://github.com/zhuzichu520/FluentUI.git
synced 2024-10-30 15:57:37 +08:00
Merge branch 'main' of https://github.com/zhuzichu520/FluentUI
This commit is contained in:
commit
4f202831b8
@ -1968,7 +1968,7 @@ Some contents...</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="177"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="499"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="513"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1998,37 +1998,47 @@ Some contents...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="494"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="470"/>
|
||||
<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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="512"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="526"/>
|
||||
<source>Address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="520"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="534"/>
|
||||
<source>Nickname</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="527"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="541"/>
|
||||
<source>Long String</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="535"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="549"/>
|
||||
<source>Options</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="554"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="568"/>
|
||||
<source><Previous</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="555"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="569"/>
|
||||
<source>Next></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -2110,7 +2110,7 @@ Some contents...</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="177"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="499"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="513"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished">名称</translation>
|
||||
</message>
|
||||
@ -2140,37 +2140,47 @@ Some contents...</source>
|
||||
<translation type="unfinished">清除所有</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="494"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="470"/>
|
||||
<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>
|
||||
<translation type="unfinished">头像</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="512"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="526"/>
|
||||
<source>Address</source>
|
||||
<translation type="unfinished">地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="520"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="534"/>
|
||||
<source>Nickname</source>
|
||||
<translation type="unfinished">昵称</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="527"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="541"/>
|
||||
<source>Long String</source>
|
||||
<translation type="unfinished">长字符串</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="535"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="549"/>
|
||||
<source>Options</source>
|
||||
<translation type="unfinished">操作</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="554"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="568"/>
|
||||
<source><Previous</source>
|
||||
<translation type="unfinished"><上一页</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qml/page/T_TableView.qml" line="555"/>
|
||||
<location filename="qml/page/T_TableView.qml" line="569"/>
|
||||
<source>Next></source>
|
||||
<translation type="unfinished">下一页></translation>
|
||||
</message>
|
||||
|
@ -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<count;i++){
|
||||
dataSource.push(genTestObject())
|
||||
|
@ -3,98 +3,110 @@ import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import FluentUI 1.0
|
||||
|
||||
|
||||
Item {
|
||||
signal requestPage(int page,int count)
|
||||
signal requestPage(int page, int count)
|
||||
|
||||
property string previousText: qsTr("<Previous")
|
||||
property string nextText: qsTr("Next>")
|
||||
property int pageCurrent: 0
|
||||
property int itemCount: 0
|
||||
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 __pageButtonHalf: Math.floor(pageButtonCount/2)+1
|
||||
property int __pageButtonHalf: Math.floor(pageButtonCount / 2) + 1
|
||||
property Component header: null
|
||||
property Component footer: null
|
||||
id: control
|
||||
implicitHeight: 40
|
||||
implicitWidth: content.width
|
||||
Row{
|
||||
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);
|
||||
Loader {
|
||||
sourceComponent: header
|
||||
}
|
||||
FluToggleButton {
|
||||
visible: control.pageCount > 1
|
||||
disabled: control.pageCurrent <= 1
|
||||
text: control.previousText
|
||||
clickListener: function () {
|
||||
control.calcNewPage(control.pageCurrent - 1);
|
||||
}
|
||||
}
|
||||
Row{
|
||||
Row {
|
||||
spacing: 5
|
||||
FluToggleButton{
|
||||
property int pageNumber:1
|
||||
visible: control.pageCount>0
|
||||
|
||||
FluToggleButton {
|
||||
property int pageNumber: 1
|
||||
visible: control.pageCount > 0
|
||||
checked: pageNumber === control.pageCurrent
|
||||
text:String(pageNumber)
|
||||
clickListener:function() {
|
||||
text: String(pageNumber)
|
||||
clickListener: function () {
|
||||
control.calcNewPage(pageNumber);
|
||||
}
|
||||
}
|
||||
FluText{
|
||||
visible: (control.pageCount>control.pageButtonCount&&
|
||||
control.pageCurrent>control.__pageButtonHalf)
|
||||
FluText {
|
||||
visible: (control.pageCount > control.pageButtonCount &&
|
||||
control.pageCurrent > control.__pageButtonHalf)
|
||||
text: "..."
|
||||
}
|
||||
Repeater{
|
||||
Repeater {
|
||||
id: button_repeator
|
||||
model: (control.pageCount<2)?0:(control.pageCount>=control.pageButtonCount)?(control.pageButtonCount-2):(control.pageCount-2)
|
||||
delegate:FluToggleButton{
|
||||
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)
|
||||
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)
|
||||
text: String(pageNumber)
|
||||
checked: pageNumber === control.pageCurrent
|
||||
clickListener:function(){
|
||||
clickListener: function () {
|
||||
control.calcNewPage(pageNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
FluText{
|
||||
visible: (control.pageCount>control.pageButtonCount&&
|
||||
control.pageCount-control.pageCurrent>control.pageButtonCount-control.__pageButtonHalf)
|
||||
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
|
||||
FluToggleButton {
|
||||
property int pageNumber: control.pageCount
|
||||
visible: control.pageCount > 1
|
||||
checked: pageNumber === control.pageCurrent
|
||||
text:String(pageNumber)
|
||||
clickListener:function(){
|
||||
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);
|
||||
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)
|
||||
}
|
||||
|
||||
function calcNewPage(page) {
|
||||
if (!page)
|
||||
return
|
||||
let page_num=Number(page)
|
||||
if(page_num<1||page_num>control.pageCount||page_num===control.pageCurrent)
|
||||
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)
|
||||
control.pageCurrent = page_num
|
||||
control.requestPage(page_num, control.__itemPerPage)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,100 +1,111 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import FluentUI
|
||||
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)
|
||||
signal requestPage(int page, int count)
|
||||
|
||||
property string previousText: qsTr("<Previous")
|
||||
property string nextText: qsTr("Next>")
|
||||
property int pageCurrent: 0
|
||||
property int itemCount: 0
|
||||
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 __pageButtonHalf: Math.floor(pageButtonCount/2)+1
|
||||
property int __pageButtonHalf: Math.floor(pageButtonCount / 2) + 1
|
||||
property Component header: null
|
||||
property Component footer: null
|
||||
id: control
|
||||
implicitHeight: 40
|
||||
implicitWidth: content.width
|
||||
Row{
|
||||
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);
|
||||
Loader {
|
||||
sourceComponent: header
|
||||
}
|
||||
FluToggleButton {
|
||||
visible: control.pageCount > 1
|
||||
disabled: control.pageCurrent <= 1
|
||||
text: control.previousText
|
||||
clickListener: function () {
|
||||
control.calcNewPage(control.pageCurrent - 1);
|
||||
}
|
||||
}
|
||||
Row{
|
||||
Row {
|
||||
spacing: 5
|
||||
FluToggleButton{
|
||||
property int pageNumber:1
|
||||
visible: control.pageCount>0
|
||||
|
||||
FluToggleButton {
|
||||
property int pageNumber: 1
|
||||
visible: control.pageCount > 0
|
||||
checked: pageNumber === control.pageCurrent
|
||||
text:String(pageNumber)
|
||||
clickListener:function() {
|
||||
text: String(pageNumber)
|
||||
clickListener: function () {
|
||||
control.calcNewPage(pageNumber);
|
||||
}
|
||||
}
|
||||
FluText{
|
||||
visible: (control.pageCount>control.pageButtonCount&&
|
||||
control.pageCurrent>control.__pageButtonHalf)
|
||||
FluText {
|
||||
visible: (control.pageCount > control.pageButtonCount &&
|
||||
control.pageCurrent > control.__pageButtonHalf)
|
||||
text: "..."
|
||||
}
|
||||
Repeater{
|
||||
Repeater {
|
||||
id: button_repeator
|
||||
model: (control.pageCount<2)?0:(control.pageCount>=control.pageButtonCount)?(control.pageButtonCount-2):(control.pageCount-2)
|
||||
delegate:FluToggleButton{
|
||||
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)
|
||||
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)
|
||||
text: String(pageNumber)
|
||||
checked: pageNumber === control.pageCurrent
|
||||
clickListener:function(){
|
||||
clickListener: function () {
|
||||
control.calcNewPage(pageNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
FluText{
|
||||
visible: (control.pageCount>control.pageButtonCount&&
|
||||
control.pageCount-control.pageCurrent>control.pageButtonCount-control.__pageButtonHalf)
|
||||
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
|
||||
FluToggleButton {
|
||||
property int pageNumber: control.pageCount
|
||||
visible: control.pageCount > 1
|
||||
checked: pageNumber === control.pageCurrent
|
||||
text:String(pageNumber)
|
||||
clickListener:function(){
|
||||
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);
|
||||
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)
|
||||
}
|
||||
|
||||
function calcNewPage(page) {
|
||||
if (!page)
|
||||
return
|
||||
let page_num=Number(page)
|
||||
if(page_num<1||page_num>control.pageCount||page_num===control.pageCurrent)
|
||||
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)
|
||||
control.pageCurrent = page_num
|
||||
control.requestPage(page_num, control.__itemPerPage)
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user