From d85a7fd53a36562dd90b40661af0c6823d5086a1 Mon Sep 17 00:00:00 2001 From: blacksun Date: Thu, 24 Mar 2016 10:35:00 +0000 Subject: [PATCH] After editing an element (opened from the new element panel by double clic, or context menu), new element panel update the content of the item who represent the edited element (pixmap and name) git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4399 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/ElementsCollection/elementcollectionitem.cpp | 9 +++++++++ sources/ElementsCollection/elementcollectionitem.h | 1 + .../ElementsCollection/elementscollectionwidget.cpp | 11 ++++++++++- .../ElementsCollection/fileelementcollectionitem.cpp | 10 ++++++++++ .../ElementsCollection/fileelementcollectionitem.h | 1 + 5 files changed, 31 insertions(+), 1 deletion(-) 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);