diff --git a/example/example.qrc b/example/example.qrc
index 6d849b0a..4f230c28 100644
--- a/example/example.qrc
+++ b/example/example.qrc
@@ -181,7 +181,7 @@
res/image/bg_scenic.png
res/image/image_1.jpg
qml/window/PageWindow.qml
- qml/page/T_StaggeredView.qml
+ qml/page/T_StaggeredLayout.qml
qml/viewmodel/SettingsViewModel.qml
qml/viewmodel/TextBoxViewModel.qml
qml/page/T_Clip.qml
diff --git a/example/qml-Qt6/component/CodeExpander.qml b/example/qml-Qt6/component/CodeExpander.qml
index cdf3bffa..de1a9d2b 100644
--- a/example/qml-Qt6/component/CodeExpander.qml
+++ b/example/qml-Qt6/component/CodeExpander.qml
@@ -136,7 +136,7 @@ FluExpander{
"FluTimeline",
"FluChart",
"FluRangeSlider",
- "FluStaggeredView",
+ "FluStaggeredLayout",
"FluProgressButton",
"FluLoadingButton",
"FluClip",
diff --git a/example/qml-Qt6/global/ItemsOriginal.qml b/example/qml-Qt6/global/ItemsOriginal.qml
index 8644dfae..1ab35986 100644
--- a/example/qml-Qt6/global/ItemsOriginal.qml
+++ b/example/qml-Qt6/global/ItemsOriginal.qml
@@ -210,12 +210,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Expander.qml"
onTap:{ navigationView.push(url) }
}
- FluPaneItem{
- title:"StaggeredView"
- menuDelegate: paneItemMenu
- url:"qrc:/example/qml/page/T_StaggeredView.qml"
- onTap:{ navigationView.push(url) }
- }
FluPaneItem{
title:"Watermark"
menuDelegate: paneItemMenu
@@ -224,6 +218,17 @@ FluObject{
}
}
+ FluPaneItemExpander{
+ title:Lang.layout
+ icon:FluentIcons.DockLeft
+ FluPaneItem{
+ title:"StaggeredLayout"
+ menuDelegate: paneItemMenu
+ url:"qrc:/example/qml/page/T_StaggeredLayout.qml"
+ onTap:{ navigationView.push(url) }
+ }
+ }
+
FluPaneItemExpander{
title:Lang.popus
icon:FluentIcons.ButtonMenu
diff --git a/example/qml-Qt6/global/Lang.qml b/example/qml-Qt6/global/Lang.qml
index 823530a6..d416ba92 100644
--- a/example/qml-Qt6/global/Lang.qml
+++ b/example/qml-Qt6/global/Lang.qml
@@ -8,6 +8,7 @@ QtObject {
property string basic_input
property string form
property string surface
+ property string layout
property string popus
property string navigation
property string theming
@@ -34,6 +35,7 @@ QtObject {
basic_input="基本输入"
form="表单"
surface="表面"
+ layout="布局"
popus="弹窗"
navigation="导航"
theming="主题"
@@ -61,6 +63,7 @@ QtObject {
basic_input="Basic Input"
form="Form"
surface="Surfaces"
+ layout="Layout"
popus="Popus"
navigation="Navigation"
theming="Theming"
diff --git a/example/qml-Qt6/page/T_StaggeredView.qml b/example/qml-Qt6/page/T_StaggeredLayout.qml
similarity index 96%
rename from example/qml-Qt6/page/T_StaggeredView.qml
rename to example/qml-Qt6/page/T_StaggeredLayout.qml
index 3cb26449..fd1e98c6 100644
--- a/example/qml-Qt6/page/T_StaggeredView.qml
+++ b/example/qml-Qt6/page/T_StaggeredLayout.qml
@@ -7,7 +7,7 @@ import "../component"
FluContentPage{
- title:"StaggeredView"
+ title:"StaggeredLayout"
property var colors : [FluColors.Yellow,FluColors.Orange,FluColors.Red,FluColors.Magenta,FluColors.Purple,FluColors.Blue,FluColors.Teal,FluColors.Green]
@@ -32,7 +32,7 @@ FluContentPage{
contentHeight: staggered_view.implicitHeight
clip: true
ScrollBar.vertical: FluScrollBar {}
- FluStaggeredView{
+ FluStaggeredLayout{
id:staggered_view
width: parent.width
itemWidth: 160
diff --git a/example/qml/component/CodeExpander.qml b/example/qml/component/CodeExpander.qml
index 707cf9c5..dbe9deab 100644
--- a/example/qml/component/CodeExpander.qml
+++ b/example/qml/component/CodeExpander.qml
@@ -136,7 +136,7 @@ FluExpander{
"FluTimeline",
"FluChart",
"FluRangeSlider",
- "FluStaggeredView",
+ "FluStaggeredLayout",
"FluProgressButton",
"FluLoadingButton",
"FluClip",
diff --git a/example/qml/global/ItemsOriginal.qml b/example/qml/global/ItemsOriginal.qml
index 33e2d3b1..da1591d0 100644
--- a/example/qml/global/ItemsOriginal.qml
+++ b/example/qml/global/ItemsOriginal.qml
@@ -210,12 +210,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Expander.qml"
onTap:{ navigationView.push(url) }
}
- FluPaneItem{
- title:"StaggeredView"
- menuDelegate: paneItemMenu
- url:"qrc:/example/qml/page/T_StaggeredView.qml"
- onTap:{ navigationView.push(url) }
- }
FluPaneItem{
title:"Watermark"
menuDelegate: paneItemMenu
@@ -224,6 +218,17 @@ FluObject{
}
}
+ FluPaneItemExpander{
+ title:Lang.layout
+ icon:FluentIcons.DockLeft
+ FluPaneItem{
+ title:"StaggeredLayout"
+ menuDelegate: paneItemMenu
+ url:"qrc:/example/qml/page/T_StaggeredLayout.qml"
+ onTap:{ navigationView.push(url) }
+ }
+ }
+
FluPaneItemExpander{
title:Lang.popus
icon:FluentIcons.ButtonMenu
diff --git a/example/qml/global/Lang.qml b/example/qml/global/Lang.qml
index 17248eeb..8db9cfc4 100644
--- a/example/qml/global/Lang.qml
+++ b/example/qml/global/Lang.qml
@@ -8,6 +8,7 @@ QtObject {
property string basic_input
property string form
property string surface
+ property string layout
property string popus
property string navigation
property string theming
@@ -34,6 +35,7 @@ QtObject {
basic_input="基本输入"
form="表单"
surface="表面"
+ layout="布局"
popus="弹窗"
navigation="导航"
theming="主题"
@@ -61,6 +63,7 @@ QtObject {
basic_input="Basic Input"
form="Form"
surface="Surfaces"
+ layout="Layout"
popus="Popus"
navigation="Navigation"
theming="Theming"
diff --git a/example/qml/page/T_OpenGL.qml b/example/qml/page/T_OpenGL.qml
new file mode 100644
index 00000000..e69de29b
diff --git a/example/qml/page/T_StaggeredView.qml b/example/qml/page/T_StaggeredLayout.qml
similarity index 96%
rename from example/qml/page/T_StaggeredView.qml
rename to example/qml/page/T_StaggeredLayout.qml
index c28108d0..cd99502a 100644
--- a/example/qml/page/T_StaggeredView.qml
+++ b/example/qml/page/T_StaggeredLayout.qml
@@ -7,7 +7,7 @@ import FluentUI 1.0
FluContentPage{
- title:"StaggeredView"
+ title:"StaggeredLayout"
property var colors : [FluColors.Yellow,FluColors.Orange,FluColors.Red,FluColors.Magenta,FluColors.Purple,FluColors.Blue,FluColors.Teal,FluColors.Green]
@@ -33,7 +33,7 @@ FluContentPage{
contentHeight: staggered_view.implicitHeight
clip: true
ScrollBar.vertical: FluScrollBar {}
- FluStaggeredView{
+ FluStaggeredLayout{
id:staggered_view
width: parent.width
itemWidth: 160
diff --git a/src/FluentUI.cpp b/src/FluentUI.cpp
index 9e99d7ae..8838c002 100644
--- a/src/FluentUI.cpp
+++ b/src/FluentUI.cpp
@@ -131,12 +131,12 @@ void FluentUI::registerTypes(const char *uri){
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluTreeView.qml"),uri,major,minor,"FluTreeView");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluWindow.qml"),uri,major,minor,"FluWindow");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluRangeSlider.qml"),uri,major,minor,"FluRangeSlider");
- qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluStaggeredView.qml"),uri,major,minor,"FluStaggeredView");
+ qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluStaggeredLayout.qml"),uri,major,minor,"FluStaggeredLayout");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluProgressButton.qml"),uri,major,minor,"FluProgressButton");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluLoadingButton.qml"),uri,major,minor,"FluLoadingButton");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluClip.qml"),uri,major,minor,"FluClip");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluLoader.qml"),uri,major,minor,"FluLoader");
-
+ qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluShortcutPicker.qml"),uri,major,minor,"FluShortcutPicker");
qmlRegisterUncreatableMetaObject(Fluent_Awesome::staticMetaObject, uri,major,minor,"FluentIcons", "Access to enums & flags only");
qmlRegisterUncreatableMetaObject(FluThemeType::staticMetaObject, uri,major,minor,"FluThemeType", "Access to enums & flags only");
diff --git a/src/Qt5/imports/FluentUI/Controls/FluMultilineTextBox.qml b/src/Qt5/imports/FluentUI/Controls/FluMultilineTextBox.qml
index 6cf3da86..c09d6193 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluMultilineTextBox.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluMultilineTextBox.qml
@@ -64,7 +64,15 @@ TextArea{
anchors.fill: parent
cursorShape: Qt.IBeamCursor
acceptedButtons: Qt.RightButton
- onClicked: control.echoMode !== TextInput.Password && menu.popup()
+ onClicked: {
+ if(control.echoMode === TextInput.Password){
+ return
+ }
+ if(control.readOnly && control.text === ""){
+ return
+ }
+ menu.popup()
+ }
}
FluTextBoxMenu{
id:menu
diff --git a/src/Qt5/imports/FluentUI/Controls/FluStaggeredView.qml b/src/Qt5/imports/FluentUI/Controls/FluStaggeredLayout.qml
similarity index 100%
rename from src/Qt5/imports/FluentUI/Controls/FluStaggeredView.qml
rename to src/Qt5/imports/FluentUI/Controls/FluStaggeredLayout.qml
diff --git a/src/Qt5/imports/FluentUI/Controls/FluTextBox.qml b/src/Qt5/imports/FluentUI/Controls/FluTextBox.qml
index f914a476..71fbaa27 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluTextBox.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluTextBox.qml
@@ -62,7 +62,15 @@ TextField{
anchors.fill: parent
cursorShape: Qt.IBeamCursor
acceptedButtons: Qt.RightButton
- onClicked: control.echoMode !== TextInput.Password && menu.popup()
+ onClicked: {
+ if(control.echoMode === TextInput.Password){
+ return
+ }
+ if(control.readOnly && control.text === ""){
+ return
+ }
+ menu.popup()
+ }
}
RowLayout{
height: parent.height
diff --git a/src/Qt5/imports/fluentui.qrc b/src/Qt5/imports/fluentui.qrc
index 97a71ae5..36277e7e 100644
--- a/src/Qt5/imports/fluentui.qrc
+++ b/src/Qt5/imports/fluentui.qrc
@@ -69,7 +69,7 @@
FluentUI/Controls/FluShadow.qml
FluentUI/Controls/FluSlider.qml
FluentUI/Controls/FluSpinBox.qml
- FluentUI/Controls/FluStaggeredView.qml
+ FluentUI/Controls/FluStaggeredLayout.qml
FluentUI/Controls/FluStatusView.qml
FluentUI/Controls/FluTableView.qml
FluentUI/Controls/FluTabView.qml
diff --git a/src/Qt6/imports/FluentUI/Controls/FluMultilineTextBox.qml b/src/Qt6/imports/FluentUI/Controls/FluMultilineTextBox.qml
index 2d67900a..6d1c3649 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluMultilineTextBox.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluMultilineTextBox.qml
@@ -65,7 +65,15 @@ TextArea{
anchors.fill: parent
cursorShape: Qt.IBeamCursor
acceptedButtons: Qt.RightButton
- onClicked: control.echoMode !== TextInput.Password && menu.popup()
+ onClicked: {
+ if(control.echoMode === TextInput.Password){
+ return
+ }
+ if(control.readOnly && control.text === ""){
+ return
+ }
+ menu.popup()
+ }
}
FluTextBoxMenu{
id:menu
diff --git a/src/Qt6/imports/FluentUI/Controls/FluStaggeredView.qml b/src/Qt6/imports/FluentUI/Controls/FluStaggeredLayout.qml
similarity index 100%
rename from src/Qt6/imports/FluentUI/Controls/FluStaggeredView.qml
rename to src/Qt6/imports/FluentUI/Controls/FluStaggeredLayout.qml
diff --git a/src/Qt6/imports/FluentUI/Controls/FluTextBox.qml b/src/Qt6/imports/FluentUI/Controls/FluTextBox.qml
index 7a3521a4..2a5a83ce 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluTextBox.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluTextBox.qml
@@ -63,7 +63,15 @@ TextField{
anchors.fill: parent
cursorShape: Qt.IBeamCursor
acceptedButtons: Qt.RightButton
- onClicked: control.echoMode !== TextInput.Password && menu.popup()
+ onClicked: {
+ if(control.echoMode === TextInput.Password){
+ return
+ }
+ if(control.readOnly && control.text === ""){
+ return
+ }
+ menu.popup()
+ }
}
RowLayout{
height: parent.height