Skip to content

Commit 598563c

Browse files
committedMay 26, 2015
fix crash on close (fixes #12822)
1 parent 9a5e8d9 commit 598563c

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed
 

‎src/providers/grass/qgsgrassprovidermodule.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -710,8 +710,8 @@ QIcon QgsGrassGroupItem::icon()
710710
}
711711

712712
//----------------------- QgsGrassImportItem ------------------------------
713-
QgsGrassImportItemIcon::QgsGrassImportItemIcon()
714-
: QObject()
713+
QgsGrassImportItemIcon::QgsGrassImportItemIcon( QObject *parent )
714+
: QObject( parent )
715715
, mCount( 0 )
716716
, mMovie( 0 )
717717
{
@@ -741,7 +741,7 @@ void QgsGrassImportItemIcon::removeListener()
741741

742742
//----------------------- QgsGrassImportItem ------------------------------
743743

744-
QgsGrassImportItemIcon QgsGrassImportItem::mImportIcon;
744+
QgsGrassImportItemIcon *QgsGrassImportItem::mImportIcon = 0;
745745

746746
QgsGrassImportItem::QgsGrassImportItem( QgsDataItem* parent, const QString& name, const QString& path, QgsGrassImport* import )
747747
: QgsDataItem( QgsDataItem::Layer, parent, name, path )
@@ -751,13 +751,16 @@ QgsGrassImportItem::QgsGrassImportItem( QgsDataItem* parent, const QString& name
751751
setCapabilities( QgsDataItem::NoCapabilities ); // disable fertility
752752
setState( Populating );
753753

754-
connect( &mImportIcon, SIGNAL( frameChanged( int ) ), SLOT( emitDataChanged() ) );
755-
mImportIcon.addListener();
754+
if ( !mImportIcon )
755+
mImportIcon = new QgsGrassImportItemIcon( import );
756+
757+
connect( mImportIcon, SIGNAL( frameChanged( int ) ), SLOT( emitDataChanged() ) );
758+
mImportIcon->addListener();
756759
}
757760

758761
QgsGrassImportItem::~QgsGrassImportItem()
759762
{
760-
mImportIcon.removeListener();
763+
mImportIcon->removeListener();
761764
}
762765

763766
QList<QAction*> QgsGrassImportItem::actions()
@@ -783,7 +786,7 @@ void QgsGrassImportItem::cancel()
783786

784787
QIcon QgsGrassImportItem::icon()
785788
{
786-
return mImportIcon.icon();
789+
return mImportIcon->icon();
787790
}
788791

789792
//-------------------------------------------------------------------------

‎src/providers/grass/qgsgrassprovidermodule.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class QgsGrassImportItemIcon : public QObject
174174
{
175175
Q_OBJECT
176176
public:
177-
QgsGrassImportItemIcon();
177+
QgsGrassImportItemIcon( QObject *parent );
178178

179179
QIcon icon() { return mIcon; }
180180
void addListener();
@@ -217,7 +217,7 @@ class QgsGrassImportItem : public QgsDataItem, public QgsGrassObjectItemBase
217217
QgsGrassImport* mImport;
218218

219219
private:
220-
static QgsGrassImportItemIcon mImportIcon;
220+
static QgsGrassImportItemIcon *mImportIcon;
221221
};
222222

223223
#endif // QGSGRASSPROVIDERMODULE_H

0 commit comments

Comments
 (0)
Failed to load comments.