diff --git a/sources/ElementsCollection/elementcollectionitem.cpp b/sources/ElementsCollection/elementcollectionitem.cpp index f661b12b5..6b37fe68c 100644 --- a/sources/ElementsCollection/elementcollectionitem.cpp +++ b/sources/ElementsCollection/elementcollectionitem.cpp @@ -234,6 +234,15 @@ QVariant ElementCollectionItem::data(int column, int role) return QVariant(); } +/** + * @brief ElementCollectionItem::clearData + * Reset the curent name + */ +void ElementCollectionItem::clearData() +{ + m_name = QString(); +} + /** * @brief ElementCollectionItem::mimeData * @return The mime data of this item diff --git a/sources/ElementsCollection/elementcollectionitem.h b/sources/ElementsCollection/elementcollectionitem.h index 7106efabb..8f8b942fd 100644 --- a/sources/ElementsCollection/elementcollectionitem.h +++ b/sources/ElementsCollection/elementcollectionitem.h @@ -52,6 +52,7 @@ class ElementCollectionItem : public QObject int childCount() const; int columnCount() const; virtual QVariant data(int column, int role); + virtual void clearData(); virtual QMimeData *mimeData(); virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column) const; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column); diff --git a/sources/ElementsCollection/elementscollectionwidget.cpp b/sources/ElementsCollection/elementscollectionwidget.cpp index 38830b8e4..4206aaca8 100644 --- a/sources/ElementsCollection/elementscollectionwidget.cpp +++ b/sources/ElementsCollection/elementscollectionwidget.cpp @@ -28,6 +28,7 @@ #include "elementscategory.h" #include "xmlprojectelementcollectionitem.h" #include "qetproject.h" +#include "qetelementeditor.h" #include #include @@ -244,7 +245,15 @@ void ElementsCollectionWidget::editElement() (eci->type() != FileElementCollectionItem::Type)) return; ElementsLocation location(static_cast(eci)->collectionPath()); - QETApp::instance()->openElementLocations(QList() << location); + + QETApp *app = QETApp::instance(); + app->openElementLocations(QList() << location); + + foreach (QETElementEditor *element_editor, app->elementEditors()) + { + if (element_editor->isEditing(location)) + connect(element_editor, &QETElementEditor::destroyed, eci, &ElementCollectionItem::clearData); + } } /** diff --git a/sources/ElementsCollection/fileelementcollectionitem.cpp b/sources/ElementsCollection/fileelementcollectionitem.cpp index d7d9c27a1..f981d9a5b 100644 --- a/sources/ElementsCollection/fileelementcollectionitem.cpp +++ b/sources/ElementsCollection/fileelementcollectionitem.cpp @@ -182,6 +182,16 @@ QVariant FileElementCollectionItem::data(int column, int role) } } +/** + * @brief FileElementCollectionItem::clearData + * Reset the current icon + */ +void FileElementCollectionItem::clearData() +{ + m_icon = QIcon(); + ElementCollectionItem::clearData(); +} + /** * @brief FileElementCollectionItem::mimeData * @return the mime data of this item diff --git a/sources/ElementsCollection/fileelementcollectionitem.h b/sources/ElementsCollection/fileelementcollectionitem.h index 219a79356..4cdf247f1 100644 --- a/sources/ElementsCollection/fileelementcollectionitem.h +++ b/sources/ElementsCollection/fileelementcollectionitem.h @@ -47,6 +47,7 @@ class FileElementCollectionItem : public ElementCollectionItem QString collectionName() const; virtual QVariant data(int column, int role); + virtual void clearData(); virtual QMimeData *mimeData(); virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column) const; virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column);