mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-26 00:02:08 -05:00
Add a changed signal to QgsRelationManager
This commit is contained in:
parent
808464fed6
commit
fb2279f620
@ -22,4 +22,10 @@ class QgsRelationManager : QObject
|
||||
|
||||
signals:
|
||||
void relationsLoaded();
|
||||
|
||||
/**
|
||||
* Emitted when relations are added or removed to the manager.
|
||||
* @note added in QGIS 2.5
|
||||
*/
|
||||
void changed();
|
||||
};
|
||||
|
@ -37,6 +37,7 @@ void QgsRelationManager::setRelations( const QList<QgsRelation>& relations )
|
||||
{
|
||||
addRelation( rel );
|
||||
}
|
||||
emit changed();
|
||||
}
|
||||
|
||||
const QMap<QString, QgsRelation>& QgsRelationManager::relations() const
|
||||
@ -52,16 +53,19 @@ void QgsRelationManager::addRelation( const QgsRelation& relation )
|
||||
mRelations.insert( relation.id(), relation );
|
||||
|
||||
mProject->dirty( true );
|
||||
emit changed();
|
||||
}
|
||||
|
||||
void QgsRelationManager::removeRelation( const QString& name )
|
||||
{
|
||||
mRelations.remove( name );
|
||||
emit changed();
|
||||
}
|
||||
|
||||
void QgsRelationManager::removeRelation( const QgsRelation& relation )
|
||||
{
|
||||
mRelations.remove( relation.id() );
|
||||
emit changed();
|
||||
}
|
||||
|
||||
QgsRelation QgsRelationManager::relation( const QString& id ) const
|
||||
@ -72,6 +76,7 @@ QgsRelation QgsRelationManager::relation( const QString& id ) const
|
||||
void QgsRelationManager::clear()
|
||||
{
|
||||
mRelations.clear();
|
||||
emit changed();
|
||||
}
|
||||
|
||||
QList<QgsRelation> QgsRelationManager::referencingRelations( QgsVectorLayer* layer, int fieldIdx ) const
|
||||
@ -152,6 +157,7 @@ void QgsRelationManager::readProject( const QDomDocument & doc )
|
||||
}
|
||||
|
||||
emit( relationsLoaded() );
|
||||
emit changed();
|
||||
}
|
||||
|
||||
void QgsRelationManager::writeProject( QDomDocument & doc )
|
||||
@ -175,7 +181,8 @@ void QgsRelationManager::writeProject( QDomDocument & doc )
|
||||
|
||||
void QgsRelationManager::layersRemoved( const QStringList& layers )
|
||||
{
|
||||
Q_FOREACH ( const QString& layer, layers )
|
||||
bool relationsChanged = false;
|
||||
Q_FOREACH( const QString& layer, layers )
|
||||
{
|
||||
QMapIterator<QString, QgsRelation> it( mRelations );
|
||||
|
||||
@ -187,7 +194,12 @@ void QgsRelationManager::layersRemoved( const QStringList& layers )
|
||||
|| it.value().referencingLayerId() == layer )
|
||||
{
|
||||
mRelations.remove( it.key() );
|
||||
relationsChanged = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( relationsChanged )
|
||||
{
|
||||
emit changed();
|
||||
}
|
||||
}
|
||||
|
@ -107,6 +107,12 @@ class CORE_EXPORT QgsRelationManager : public QObject
|
||||
signals:
|
||||
void relationsLoaded();
|
||||
|
||||
/**
|
||||
* Emitted when relations are added or removed to the manager.
|
||||
* @note added in QGIS 2.5
|
||||
*/
|
||||
void changed();
|
||||
|
||||
private slots:
|
||||
void readProject( const QDomDocument &doc );
|
||||
void writeProject( QDomDocument &doc );
|
||||
|
Loading…
x
Reference in New Issue
Block a user