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:
|
signals:
|
||||||
void relationsLoaded();
|
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 );
|
addRelation( rel );
|
||||||
}
|
}
|
||||||
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
const QMap<QString, QgsRelation>& QgsRelationManager::relations() const
|
const QMap<QString, QgsRelation>& QgsRelationManager::relations() const
|
||||||
@ -52,16 +53,19 @@ void QgsRelationManager::addRelation( const QgsRelation& relation )
|
|||||||
mRelations.insert( relation.id(), relation );
|
mRelations.insert( relation.id(), relation );
|
||||||
|
|
||||||
mProject->dirty( true );
|
mProject->dirty( true );
|
||||||
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QgsRelationManager::removeRelation( const QString& name )
|
void QgsRelationManager::removeRelation( const QString& name )
|
||||||
{
|
{
|
||||||
mRelations.remove( name );
|
mRelations.remove( name );
|
||||||
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QgsRelationManager::removeRelation( const QgsRelation& relation )
|
void QgsRelationManager::removeRelation( const QgsRelation& relation )
|
||||||
{
|
{
|
||||||
mRelations.remove( relation.id() );
|
mRelations.remove( relation.id() );
|
||||||
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsRelation QgsRelationManager::relation( const QString& id ) const
|
QgsRelation QgsRelationManager::relation( const QString& id ) const
|
||||||
@ -72,6 +76,7 @@ QgsRelation QgsRelationManager::relation( const QString& id ) const
|
|||||||
void QgsRelationManager::clear()
|
void QgsRelationManager::clear()
|
||||||
{
|
{
|
||||||
mRelations.clear();
|
mRelations.clear();
|
||||||
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QgsRelation> QgsRelationManager::referencingRelations( QgsVectorLayer* layer, int fieldIdx ) const
|
QList<QgsRelation> QgsRelationManager::referencingRelations( QgsVectorLayer* layer, int fieldIdx ) const
|
||||||
@ -152,6 +157,7 @@ void QgsRelationManager::readProject( const QDomDocument & doc )
|
|||||||
}
|
}
|
||||||
|
|
||||||
emit( relationsLoaded() );
|
emit( relationsLoaded() );
|
||||||
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QgsRelationManager::writeProject( QDomDocument & doc )
|
void QgsRelationManager::writeProject( QDomDocument & doc )
|
||||||
@ -175,7 +181,8 @@ void QgsRelationManager::writeProject( QDomDocument & doc )
|
|||||||
|
|
||||||
void QgsRelationManager::layersRemoved( const QStringList& layers )
|
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 );
|
QMapIterator<QString, QgsRelation> it( mRelations );
|
||||||
|
|
||||||
@ -187,7 +194,12 @@ void QgsRelationManager::layersRemoved( const QStringList& layers )
|
|||||||
|| it.value().referencingLayerId() == layer )
|
|| it.value().referencingLayerId() == layer )
|
||||||
{
|
{
|
||||||
mRelations.remove( it.key() );
|
mRelations.remove( it.key() );
|
||||||
|
relationsChanged = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ( relationsChanged )
|
||||||
|
{
|
||||||
|
emit changed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -107,6 +107,12 @@ class CORE_EXPORT QgsRelationManager : public QObject
|
|||||||
signals:
|
signals:
|
||||||
void relationsLoaded();
|
void relationsLoaded();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Emitted when relations are added or removed to the manager.
|
||||||
|
* @note added in QGIS 2.5
|
||||||
|
*/
|
||||||
|
void changed();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void readProject( const QDomDocument &doc );
|
void readProject( const QDomDocument &doc );
|
||||||
void writeProject( QDomDocument &doc );
|
void writeProject( QDomDocument &doc );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user