From f2fd446bb54336e68f4b19c2912ca2c8a29ed448 Mon Sep 17 00:00:00 2001 From: blacksun Date: Tue, 13 Mar 2018 16:20:59 +0000 Subject: [PATCH] Fix : Composite text dialog widget can't be selected when he is open by the element properties dialog widget Fix : The ui freeze when use the drag and drop in the tab widget "texts" of element properties, when he is displayed by the element properties dialog widget. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5268 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/qetgraphicsitem/element.cpp | 3 +++ sources/ui/dynamicelementtextmodel.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sources/qetgraphicsitem/element.cpp b/sources/qetgraphicsitem/element.cpp index df81e43b9..1fc9f876a 100644 --- a/sources/qetgraphicsitem/element.cpp +++ b/sources/qetgraphicsitem/element.cpp @@ -91,6 +91,9 @@ void Element::editProperty() ElementPropertiesWidget *epw = new ElementPropertiesWidget(this); PropertiesEditorDialog dialog(epw, QApplication::activeWindow()); connect(epw, &ElementPropertiesWidget::findEditClicked, &dialog, &QDialog::reject); + //Must be windowModal, else when user do a drag and drop + //with the "text" tab of ElementPropertiesWidget, the ui freeze, until user press escape key + dialog.setWindowModality(Qt::WindowModal); dialog.exec(); } } diff --git a/sources/ui/dynamicelementtextmodel.cpp b/sources/ui/dynamicelementtextmodel.cpp index ace432c45..3b67c2ddc 100644 --- a/sources/ui/dynamicelementtextmodel.cpp +++ b/sources/ui/dynamicelementtextmodel.cpp @@ -799,7 +799,7 @@ bool DynamicElementTextModel::indexIsGroup(const QModelIndex &index) const bool DynamicElementTextModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const { Q_UNUSED(action); - + if(data->hasFormat("application/x-qet-element-text-uuid")) { QModelIndex index; @@ -945,7 +945,7 @@ bool DynamicElementTextModel::dropMimeData(const QMimeData *data, Qt::DropAction } QMimeData *DynamicElementTextModel::mimeData(const QModelIndexList &indexes) const -{ +{ QModelIndex index = indexes.first(); if (index.isValid()) { @@ -963,7 +963,7 @@ QMimeData *DynamicElementTextModel::mimeData(const QModelIndexList &indexes) con } } - return new QMimeData(); + return QStandardItemModel::mimeData(indexes); } /** @@ -1355,7 +1355,7 @@ QWidget *DynamicTextItemDelegate::createEditor(QWidget *parent, const QStyleOpti if(!deti) break; - CompositeTextEditDialog *cted = new CompositeTextEditDialog(deti); + CompositeTextEditDialog *cted = new CompositeTextEditDialog(deti, parent); cted->setObjectName("composite_text"); return cted; }