mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-16 19:54:13 +02:00
Merge pull request #743 from ispyisail/fix/bugtracker-291-cancel-during-collection-load
Fix bugtracker #291: crash on cancelling open-element dialog before collection load finishes
This commit is contained in:
@@ -38,6 +38,20 @@ ElementsCollectionModel::ElementsCollectionModel(QObject *parent) :
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief ElementsCollectionModel::~ElementsCollectionModel
|
||||||
|
Destructor. loadCollections() may still have background threads
|
||||||
|
(via QtConcurrent::map()) running setUpData() on this model's items
|
||||||
|
when the model is destroyed (e.g. the user cancels the dialog before
|
||||||
|
loading finishes). Wait for them here so QStandardItemModel's
|
||||||
|
destructor doesn't free items out from under them, which used to
|
||||||
|
crash the whole application (bugtracker #291).
|
||||||
|
*/
|
||||||
|
ElementsCollectionModel::~ElementsCollectionModel()
|
||||||
|
{
|
||||||
|
m_future.waitForFinished();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief ElementsCollectionModel::data
|
@brief ElementsCollectionModel::data
|
||||||
Reimplemented from QStandardItemModel
|
Reimplemented from QStandardItemModel
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ class ElementsCollectionModel : public QStandardItemModel
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
ElementsCollectionModel(QObject *parent = Q_NULLPTR);
|
ElementsCollectionModel(QObject *parent = Q_NULLPTR);
|
||||||
|
~ElementsCollectionModel() override;
|
||||||
|
|
||||||
QVariant data(const QModelIndex &index, int role) const override;
|
QVariant data(const QModelIndex &index, int role) const override;
|
||||||
QMimeData *mimeData(const QModelIndexList &indexes) const override;
|
QMimeData *mimeData(const QModelIndexList &indexes) const override;
|
||||||
|
|||||||
Reference in New Issue
Block a user