aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickdialogs/quickdialogsquickimpl/qml
diff options
context:
space:
mode:
authorOliver Eftevaag <oliver.eftevaag@qt.io>2024-01-09 12:49:52 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-08-05 11:58:34 +0000
commitc0b0df39a8de931e522ee5d1f45c2967bc8a969c (patch)
treea92059e13a337b580ff6d6f11e05c72997ca0544 /src/quickdialogs/quickdialogsquickimpl/qml
parent58c15e24065708ac3937f85cdeb61f6053b3d594 (diff)
Fix binding loop in FileDialog
The patch 1cc20d181bdee1131bf2eb191e7f8fe4e4927e03 introduced a nested dialog inside the FileDialog, which contained a Label as its contentItem. This would cause a binding loop, since the dialog would add itself as an implicitSize listener to the Label, and attempt to update it's own implicitSize twice, when the Label's text changes. Fix the issue by giving the dialog an explicit width. When the overwriteConfirmationDialog had an animation (which the Material Dialog has), it was possible to enter QQuickPopupPositioner::reposition(), when its parentItem (the fileDialogListView), no longer had a window. Add a check to return early, in those situations, to avoid a crash. Fixes: QTBUG-127619 Change-Id: I0324a2a470f237ba1a65a95d8bea7fa50166d756 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 036beb99621781b406b70e6c31841215393e38ea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit ee1fa04814d22565685d5d0fe2ccd5773fcb3276) (cherry picked from commit 85f768102226dafa98c068d3a00b971a0559140f)
Diffstat (limited to 'src/quickdialogs/quickdialogsquickimpl/qml')
-rw-r--r--src/quickdialogs/quickdialogsquickimpl/qml/+Fusion/FileDialog.qml8
-rw-r--r--src/quickdialogs/quickdialogsquickimpl/qml/+Imagine/FileDialog.qml10
-rw-r--r--src/quickdialogs/quickdialogsquickimpl/qml/+Material/FileDialog.qml9
-rw-r--r--src/quickdialogs/quickdialogsquickimpl/qml/+Universal/FileDialog.qml8
-rw-r--r--src/quickdialogs/quickdialogsquickimpl/qml/FileDialog.qml8
5 files changed, 26 insertions, 17 deletions
diff --git a/src/quickdialogs/quickdialogsquickimpl/qml/+Fusion/FileDialog.qml b/src/quickdialogs/quickdialogsquickimpl/qml/+Fusion/FileDialog.qml
index a388fee95c..bc1833d7d5 100644
--- a/src/quickdialogs/quickdialogsquickimpl/qml/+Fusion/FileDialog.qml
+++ b/src/quickdialogs/quickdialogsquickimpl/qml/+Fusion/FileDialog.qml
@@ -38,10 +38,12 @@ FileDialogImpl {
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
dim: true
modal: true
- title: qsTr("“%1” already exists. Do you want to replace it?").arg(control.fileName)
+ title: qsTr("Overwrite file?")
+ width: control.width - control.leftPadding - control.rightPadding
- Label {
- text: qsTr("A file with the same name already exists in %1.\nReplacing it will overwrite its current contents.").arg(control.currentFolderName)
+ contentItem: Label {
+ text: qsTr("“%1” already exists.\nDo you want to replace it?").arg(control.fileName)
+ wrapMode: Text.WordWrap
}
footer: DialogButtonBox {
diff --git a/src/quickdialogs/quickdialogsquickimpl/qml/+Imagine/FileDialog.qml b/src/quickdialogs/quickdialogsquickimpl/qml/+Imagine/FileDialog.qml
index 63e96c5ef6..42098b3879 100644
--- a/src/quickdialogs/quickdialogsquickimpl/qml/+Imagine/FileDialog.qml
+++ b/src/quickdialogs/quickdialogsquickimpl/qml/+Imagine/FileDialog.qml
@@ -47,12 +47,12 @@ FileDialogImpl {
dim: true
modal: true
spacing: 12
- title: qsTr("“%1” already exists. Do you want to replace it?").arg(control.fileName)
+ title: qsTr("Overwrite file?")
+ width: control.width - control.leftPadding - control.rightPadding
- Label {
- anchors.horizontalCenter: parent.horizontalCenter
- text: qsTr("A file with the same name already exists in %1.\nReplacing it will overwrite its current contents.").arg(control.currentFolderName)
- horizontalAlignment: Text.AlignHCenter
+ contentItem: Label {
+ text: qsTr("“%1” already exists.\nDo you want to replace it?").arg(control.fileName)
+ wrapMode: Text.WordWrap
}
footer: DialogButtonBox {
diff --git a/src/quickdialogs/quickdialogsquickimpl/qml/+Material/FileDialog.qml b/src/quickdialogs/quickdialogsquickimpl/qml/+Material/FileDialog.qml
index 0f4062c431..b579fe7fe4 100644
--- a/src/quickdialogs/quickdialogsquickimpl/qml/+Material/FileDialog.qml
+++ b/src/quickdialogs/quickdialogsquickimpl/qml/+Material/FileDialog.qml
@@ -39,10 +39,13 @@ FileDialogImpl {
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
dim: true
modal: true
- title: qsTr("“%1” already exists. Do you want to replace it?").arg(control.fileName)
+ title: qsTr("Overwrite file?")
+ width: control.width - control.leftPadding - control.rightPadding
+ clip: true
- Label {
- text: qsTr("A file with the same name already exists in %1.\nReplacing it will overwrite its current contents.").arg(control.currentFolderName)
+ contentItem: Label {
+ text: qsTr("“%1” already exists.\nDo you want to replace it?").arg(control.fileName)
+ wrapMode: Text.WordWrap
}
footer: DialogButtonBox {
diff --git a/src/quickdialogs/quickdialogsquickimpl/qml/+Universal/FileDialog.qml b/src/quickdialogs/quickdialogsquickimpl/qml/+Universal/FileDialog.qml
index cfb52f694f..69b9971cc4 100644
--- a/src/quickdialogs/quickdialogsquickimpl/qml/+Universal/FileDialog.qml
+++ b/src/quickdialogs/quickdialogsquickimpl/qml/+Universal/FileDialog.qml
@@ -37,10 +37,12 @@ FileDialogImpl {
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
dim: true
modal: true
- title: qsTr("“%1” already exists. Do you want to replace it?").arg(control.fileName)
+ title: qsTr("Overwrite file?")
+ width: control.width - control.leftPadding - control.rightPadding
- Label {
- text: qsTr("A file with the same name already exists in %1.\nReplacing it will overwrite its current contents.").arg(control.currentFolderName)
+ contentItem: Label {
+ text: qsTr("“%1” already exists.\nDo you want to replace it?").arg(control.fileName)
+ wrapMode: Text.WordWrap
}
footer: DialogButtonBox {
diff --git a/src/quickdialogs/quickdialogsquickimpl/qml/FileDialog.qml b/src/quickdialogs/quickdialogsquickimpl/qml/FileDialog.qml
index 7a7e6ee8b8..1434b04791 100644
--- a/src/quickdialogs/quickdialogsquickimpl/qml/FileDialog.qml
+++ b/src/quickdialogs/quickdialogsquickimpl/qml/FileDialog.qml
@@ -41,10 +41,12 @@ FileDialogImpl {
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
dim: true
modal: true
- title: qsTr("“%1” already exists. Do you want to replace it?").arg(control.fileName)
+ title: qsTr("Overwrite file?")
+ width: control.width - control.leftPadding - control.rightPadding
- Label {
- text: qsTr("A file with the same name already exists in %1.\nReplacing it will overwrite its current contents.").arg(control.currentFolderName)
+ contentItem: Label {
+ text: qsTr("“%1” already exists.\nDo you want to replace it?").arg(control.fileName)
+ wrapMode: Text.WordWrap
}
footer: DialogButtonBox {