diff --git a/example/qml/global/ItemsOriginal.qml b/example/qml/global/ItemsOriginal.qml index 4a86a5a1..8834c1b9 100644 --- a/example/qml/global/ItemsOriginal.qml +++ b/example/qml/global/ItemsOriginal.qml @@ -27,48 +27,38 @@ FluObject{ } navigationView.push("qrc:/example/qml/page/T_Home.qml") } - rightMenu: FluMenu{ - property string renameText : "重命名" + editDelegate: FluTextBox{ + text:item_home.title + } + menuDelegate: FluMenu{ id:nav_item_right_menu - enableAnimation: false width: 120 - FluMenuItem{ - text: nav_item_right_menu.renameText + text: "重命名" visible: true onClicked: { - item_home.editable = true; - + item_home.showEdit = true } } } - onTitleEdited:function(newText){ - rename(item_home,newText) - } } FluPaneItemExpander{ id:item_expander_basic_input title:lang.basic_input icon:FluentIcons.CheckboxComposite - - rightMenu: FluMenu{ - property string renameText : "重命名" - id:nav_item_expander_right_menu - enableAnimation: false - width: 120 - + editDelegate: FluTextBox{ + text:item_expander_basic_input.title + } + menuDelegate: FluMenu{ FluMenuItem{ - text: nav_item_expander_right_menu.renameText + text: "重命名" visible: true onClicked: { - item_expander_basic_input.editable = true; - + item_expander_basic_input.showEdit = true } } } - onTitleEdited:function(newText){ rename(item_expander_basic_input,newText)} - FluPaneItem{ id:item_buttons count: 99 diff --git a/src/imports/FluentUI/Controls/FluComboBox.qml b/src/imports/FluentUI/Controls/FluComboBox.qml index fd7bff65..7b2ebada 100644 --- a/src/imports/FluentUI/Controls/FluComboBox.qml +++ b/src/imports/FluentUI/Controls/FluComboBox.qml @@ -6,7 +6,7 @@ import QtQuick.Templates as T ComboBox { id: control - signal commit + signal commit(string text) property bool disabled: false property color normalColor: FluTheme.dark ? Qt.rgba(62/255,62/255,62/255,1) : Qt.rgba(254/255,254/255,254/255,1) property color hoverColor: FluTheme.dark ? Qt.rgba(68/255,68/255,68/255,1) : Qt.rgba(251/255,251/255,251/255,1) @@ -71,7 +71,7 @@ ComboBox { Keys.onEnterPressed: (event)=> handleCommit(event) Keys.onReturnPressed:(event)=> handleCommit(event) function handleCommit(event){ - control.commit() + control.commit(control.editText) } } diff --git a/src/imports/FluentUI/Controls/FluEditableText.qml b/src/imports/FluentUI/Controls/FluEditableText.qml deleted file mode 100644 index e94289f3..00000000 --- a/src/imports/FluentUI/Controls/FluEditableText.qml +++ /dev/null @@ -1,91 +0,0 @@ -import QtQuick -import FluentUI -Item { - id:root - property bool editable: false - property string text: "" - property int elide - property color color - property color editBgColor: FluTheme.dark ? Qt.rgba(62/255,62/255,62/255,1) : Qt.rgba(255/255,255/255,255/255,1) - property color editTextColor: FluTheme.dark ? Qt.rgba(255/255,255/255,255/255,1) : Qt.rgba(27/255,27/255,27/255,1) - - property alias editBgRect : editBackgroundComponent - property alias normalText :normalTextComponent - property alias editableText :editableTextComponent - - - signal fluTextEdited(var newText) - signal fluLostFocus(bool isActiveFocus) - - - height:24 - - function setEditable(value){ - editable = value; - } - - Keys.onPressed:function(event) { - if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { - if(editableTextComponent.text !== "" && editableTextComponent.text !== root.text){ - fluTextEdited(editableTextComponent.text) - } - - fluLostFocus(false) - } - } - - - //property alias anchors:normalText.anchors - FluText{ - id:normalTextComponent - text: root.text - elide:root.elide - color:root.color - visible: !editable - anchors.fill: parent - lineHeight: height - verticalAlignment: Text.AlignVCenter - } - - Rectangle{ - id:editBackgroundComponent - width: Math.max(editableText.implicitWidth,20) - height:parent.height - radius: 5 - - - color:editable? editBgColor:"transparent" - visible: editable - TextInput{ - id:editableTextComponent - anchors.fill: parent - - text:root.text - color:editTextColor - visible: editable - renderType: FluTheme.nativeText ? Text.NativeRendering : Text.QtRendering - font: FluTextStyle.Body - verticalAlignment: Text.AlignVCenter - //focus: editable - - onActiveFocusChanged: { - if(editableTextComponent.text !== "" && editableTextComponent.text !== root.text){ - fluTextEdited(text) - } - fluLostFocus(activeFocus); - } - } - } - onEditableChanged: { - if(editable){ - editableTextComponent.forceActiveFocus() - editableTextComponent.selectAll() - } - } - - - - - - -} diff --git a/src/imports/FluentUI/Controls/FluMultilineTextBox.qml b/src/imports/FluentUI/Controls/FluMultilineTextBox.qml index 5da6d5af..2b94a105 100644 --- a/src/imports/FluentUI/Controls/FluMultilineTextBox.qml +++ b/src/imports/FluentUI/Controls/FluMultilineTextBox.qml @@ -4,7 +4,7 @@ import QtQuick.Controls.Basic import FluentUI TextArea{ - signal commit + signal commit(string text) property bool disabled: false property color normalColor: FluTheme.dark ? Qt.rgba(255/255,255/255,255/255,1) : Qt.rgba(27/255,27/255,27/255,1) property color disableColor: FluTheme.dark ? Qt.rgba(131/255,131/255,131/255,1) : Qt.rgba(160/255,160/255,160/255,1) @@ -50,7 +50,7 @@ TextArea{ insert(control.cursorPosition, "\n") return } - control.commit() + control.commit(control.text) } } MouseArea{ diff --git a/src/imports/FluentUI/Controls/FluNavigationView.qml b/src/imports/FluentUI/Controls/FluNavigationView.qml index db32930b..9aece282 100644 --- a/src/imports/FluentUI/Controls/FluNavigationView.qml +++ b/src/imports/FluentUI/Controls/FluNavigationView.qml @@ -163,23 +163,14 @@ Item { leftMargin: 6 rightMargin: 6 } - - Loader{ - id:navItemRightMenuLoader - //anchors.centerIn: parent - sourceComponent: model.rightMenu - } - MouseArea{ anchors.fill: parent acceptedButtons: Qt.RightButton onClicked: function(mouse){ if (mouse.button === Qt.RightButton) { - if(model.rightMenu){ - var rightMenuComponent = model.rightMenu.createObject(navItemRightMenuLoader); // navItemRightMenuLoader 是你要将菜单附加到的父级项 - if (rightMenuComponent !== null) { - rightMenuComponent.popup(); - } + if(model.menuDelegate){ + loader_item_menu.sourceComponent = model.menuDelegate + loader_item_menu.item.popup() } } } @@ -208,7 +199,6 @@ Item { } visible: { if(!model.isExpand){ - for(var i=0;i