23 Ui::QgsRelationManagerDialogBase(),
24 mRelationManager( relationMgr )
47 int row = mRelationsTable->rowCount();
48 mRelationsTable->insertRow( row );
50 QTableWidgetItem* item =
new QTableWidgetItem( rel.
name() );
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 );
60 item =
new QTableWidgetItem( rel.
fieldPairs().first().referencingField() );
61 item->setFlags( Qt::ItemIsEditable );
62 mRelationsTable->setItem( row, 2, item );
65 item->setFlags( Qt::ItemIsEditable );
66 mRelationsTable->setItem( row, 3, item );
68 item =
new QTableWidgetItem( rel.
fieldPairs().first().referencedField() );
69 item->setFlags( Qt::ItemIsEditable );
70 mRelationsTable->setItem( row, 4, item );
72 item =
new QTableWidgetItem( rel.
id() );
73 item->setFlags( Qt::ItemIsEditable );
74 mRelationsTable->setItem( row, 5, item );
90 relationId = QString(
"%1_%2_%3_%4" )
96 QStringList existingNames;
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 for (
int i = 0; i < mRelationsTable->rowCount(); ++i )
133 relation.
setRelationName( mRelationsTable->item( i, 0 )->data( Qt::DisplayRole ).toString() );
134 relations << relation;
void setRelationId(QString id)
Set a name for this relation.
void addRelation(const QgsRelation &rel)
const QString name() const
QgsRelationManager * mRelationManager
void on_mBtnRemoveRelation_clicked()
void setRelationName(QString name)
Set a name for this relation.
QList< QgsRelation > relations()
QgsRelationManagerDialog(QgsRelationManager *relationMgr, QWidget *parent=0)
QgsVectorLayer * referencedLayer() const
Access the referenced (parent) layer.
void setReferencingLayer(QString id)
Set the referencing layer id.
const QString & name() const
Get the display name of the layer.
void setLayers(QList< QgsVectorLayer * >)
void setReferencedLayer(QString id)
Set the referenced layer id.
const QMap< QString, QgsRelation > & relations() const
const QString & id() const
The id.
QgsVectorLayer * referencingLayer() const
Access the referencing (child) layer This is the layer which has the field(s) which point to another ...
void on_mBtnAddRelation_clicked()
~QgsRelationManagerDialog()
QList< QPair< QString, QString > > references()
void addLayers(QList< QgsVectorLayer * > layers)
QList< QgsVectorLayer * > mLayers
QString referencedLayerId()
This class manages a set of relations between layers.
void addFieldPair(QString referencingField, QString referencedField)
Add a field pairs which is part of this relation The first element of each pair are the field names f...
QList< FieldPair > fieldPairs() const
Returns the field pairs which form this relation The first element of each pair are the field names f...
QString referencingLayerId()