23 Ui::QgsRelationManagerDialogBase(),
24 mRelationManager( relationMgr )
47 int row = mRelationsTable->rowCount();
48 mRelationsTable->insertRow( row );
52 item->
setData( Qt::UserRole, QVariant::fromValue<QgsRelation>( rel ) );
53 mRelationsTable->setItem( row, 0, item );
57 item->
setFlags( Qt::ItemIsEditable );
58 mRelationsTable->setItem( row, 1, item );
61 item->
setFlags( Qt::ItemIsEditable );
62 mRelationsTable->setItem( row, 2, item );
65 item->
setFlags( Qt::ItemIsEditable );
66 mRelationsTable->setItem( row, 3, item );
69 item->
setFlags( Qt::ItemIsEditable );
70 mRelationsTable->setItem( row, 4, item );
73 item->
setFlags( Qt::ItemIsEditable );
74 mRelationsTable->setItem( row, 5, item );
90 relationId =
QString(
"%1_%2_%3_%4" )
101 existingNames << rel.
id();
104 QString tempId = relationId +
"_%1";
106 while ( existingNames.
contains( relationId ) )
108 relationId = tempId.
arg( suffix );
121 if ( mRelationsTable->currentIndex().isValid() )
122 mRelationsTable->removeRow( mRelationsTable->currentItem()->row() );
129 int rows = mRelationsTable->rowCount();
131 for (
int i = 0; i < rows; ++i )
135 relation.
setRelationName( mRelationsTable->item( i, 0 )->data( Qt::DisplayRole ).toString() );
136 relations << relation;
void addRelation(const QgsRelation &rel)
QList< T > values() const
void on_mBtnRemoveRelation_clicked()
void setReferencingLayer(const QString &id)
Set the referencing layer id.
const T & at(int i) const
QList< QgsRelation > relations()
bool contains(const QString &str, Qt::CaseSensitivity cs) const
QgsRelationManagerDialog(QgsRelationManager *relationMgr, QWidget *parent=0)
void addFieldPair(const QString &referencingField, const QString &referencedField)
Add a field pairs which is part of this relation The first element of each pair are the field names f...
QgsVectorLayer * referencedLayer() const
Access the referenced (parent) layer.
QString name() const
Returns a human readable name for this relation.
QString id() const
A (project-wide) unique id for this relation.
const QString & name() const
Get the display name of the layer.
const QMap< QString, QgsRelation > & relations() const
Get access to the relations managed by this class.
void setRelationName(const QString &name)
Set a name for this relation.
QgsVectorLayer * referencingLayer() const
Access the referencing (child) layer This is the layer which has the field(s) which point to another ...
void addLayers(const QList< QgsVectorLayer * > &layers)
void on_mBtnAddRelation_clicked()
void setReferencedLayer(const QString &id)
Set the referenced layer id.
~QgsRelationManagerDialog()
QList< QPair< QString, QString > > references()
QString referencedLayerId()
void setRelationId(const QString &id)
Set a name for this relation.
void setLayers(const QList< QgsVectorLayer * > &)
This class manages a set of relations between layers.
QList< FieldPair > fieldPairs() const
Returns the field pairs which form this relation The first element of each pair are the field names f...
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
QString referencingLayerId()