mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-13 00:03:09 -04:00
[GRASS] import icon
This commit is contained in:
parent
d40d481bd3
commit
b91e43af23
@ -326,6 +326,7 @@
|
||||
<file>themes/default/mIconFirst.png</file>
|
||||
<file>themes/default/mIconGeometryLayer.png</file>
|
||||
<file>themes/default/mIconInfo.png</file>
|
||||
<file>themes/default/mIconImport.gif</file>
|
||||
<file>themes/default/mIconLabelQuadrantCenter.svg</file>
|
||||
<file>themes/default/mIconLabelQuadrantOffset.svg</file>
|
||||
<file>themes/default/mIconLast.png</file>
|
||||
|
BIN
images/themes/default/mIconImport.gif
Normal file
BIN
images/themes/default/mIconImport.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.9 KiB |
@ -678,7 +678,40 @@ QIcon QgsGrassRasterItem::icon()
|
||||
return QgsDataItem::icon();
|
||||
}
|
||||
|
||||
|
||||
//----------------------- QgsGrassImportItem ------------------------------
|
||||
QgsGrassImportItemIcon::QgsGrassImportItemIcon()
|
||||
: QObject()
|
||||
, mCount( 0 )
|
||||
, mMovie( 0 )
|
||||
{
|
||||
// QApplication as parent to ensure that it is deleted before QApplication
|
||||
mMovie = new QMovie( QApplication::instance() );
|
||||
mMovie->setFileName( QgsApplication::iconPath( "/mIconImport.gif" ) );
|
||||
mMovie->setCacheMode( QMovie::CacheAll );
|
||||
connect( mMovie, SIGNAL( frameChanged( int ) ), SLOT( onFrameChanged() ) );
|
||||
}
|
||||
|
||||
void QgsGrassImportItemIcon::onFrameChanged()
|
||||
{
|
||||
mIcon = QIcon( mMovie->currentPixmap() );
|
||||
}
|
||||
|
||||
void QgsGrassImportItemIcon::addListener()
|
||||
{
|
||||
mCount++;
|
||||
mMovie->setPaused( mCount == 0 );
|
||||
}
|
||||
|
||||
void QgsGrassImportItemIcon::removeListener()
|
||||
{
|
||||
mCount++;
|
||||
mMovie->setPaused( mCount == 0 );
|
||||
}
|
||||
|
||||
//----------------------- QgsGrassImportItem ------------------------------
|
||||
|
||||
QgsGrassImportItemIcon QgsGrassImportItem::mImportIcon;
|
||||
|
||||
QgsGrassImportItem::QgsGrassImportItem( QgsDataItem* parent, const QString& name, const QString& path, QgsGrassImport* import )
|
||||
: QgsDataItem( QgsDataItem::Layer, parent, name, path )
|
||||
@ -687,6 +720,14 @@ QgsGrassImportItem::QgsGrassImportItem( QgsDataItem* parent, const QString& name
|
||||
{
|
||||
setCapabilities( QgsDataItem::NoCapabilities ); // disable fertility
|
||||
setState( Populating );
|
||||
|
||||
connect( &mImportIcon, SIGNAL( frameChanged( int ) ), SLOT( emitDataChanged() ) );
|
||||
mImportIcon.addListener();
|
||||
}
|
||||
|
||||
QgsGrassImportItem::~QgsGrassImportItem()
|
||||
{
|
||||
mImportIcon.removeListener();
|
||||
}
|
||||
|
||||
QList<QAction*> QgsGrassImportItem::actions()
|
||||
@ -710,6 +751,11 @@ void QgsGrassImportItem::cancel()
|
||||
mImport->cancel();
|
||||
}
|
||||
|
||||
QIcon QgsGrassImportItem::icon()
|
||||
{
|
||||
return mImportIcon.icon();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
QGISEXTERN int dataCapabilities()
|
||||
|
@ -157,17 +157,42 @@ class QgsGrassRasterItem : public QgsGrassObjectItem
|
||||
bool mExternal;
|
||||
};
|
||||
|
||||
// icon movie
|
||||
class QgsGrassImportItemIcon : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QgsGrassImportItemIcon();
|
||||
|
||||
QIcon icon() { return mIcon; }
|
||||
void addListener();
|
||||
void removeListener();
|
||||
|
||||
public slots:
|
||||
void onFrameChanged();
|
||||
|
||||
signals:
|
||||
void frameChanged();
|
||||
|
||||
private:
|
||||
void resetMovie();
|
||||
int mCount;
|
||||
QMovie * mMovie;
|
||||
QIcon mIcon;
|
||||
};
|
||||
|
||||
// item representing a layer being imported
|
||||
class QgsGrassImportItem : public QgsDataItem, public QgsGrassObjectItemBase
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QgsGrassImportItem( QgsDataItem* parent, const QString& name, const QString& path, QgsGrassImport* import );
|
||||
|
||||
~QgsGrassImportItem();
|
||||
//virtual void setState( State state ) override {
|
||||
// QgsDataItem::setState(state);
|
||||
//} // do nothing to keep Populating
|
||||
virtual QList<QAction*> actions() override;
|
||||
virtual QIcon icon() override;
|
||||
|
||||
public slots:
|
||||
virtual void refresh() override {}
|
||||
@ -178,6 +203,9 @@ class QgsGrassImportItem : public QgsDataItem, public QgsGrassObjectItemBase
|
||||
virtual void refresh( QVector<QgsDataItem*> children ) override { Q_UNUSED( children )};
|
||||
//bool mDeleteAction;
|
||||
QgsGrassImport* mImport;
|
||||
|
||||
private:
|
||||
static QgsGrassImportItemIcon mImportIcon;
|
||||
};
|
||||
|
||||
#endif // QGSGRASSPROVIDERMODULE_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user