mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
This adds the possibility to manage data on a normalized relational database in N:M relations. On the relation editor in a form, the tools to add, delete, link and unlink work (also) on the linking table if a relation is visualized as N:M relation. Configuration is done through the fields tab where on the relation a second relation can be chosen (if there is a suitable relation in terms of a second relation on the linking table). Limitations =========== QGIS is not a database management system. It is based on assumptions about the underlying database system. In particular it expects * A `ON DELETE CASCADE` or similar measure on the second relation * Does not take care of setting the primary key when adding features. Either users need to be instructed to set them manually or - if it's a database derived value - the layers need to be in transaction mode (currently only activatable through the API)
34 lines
1.3 KiB
Plaintext
34 lines
1.3 KiB
Plaintext
/***************************************************************************
|
|
qgsrelationwidgetwrapper.h
|
|
--------------------------------------
|
|
Date : 14.5.2014
|
|
Copyright : (C) 2014 Matthias Kuhn
|
|
Email : matthias at opengis dot ch
|
|
***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
|
|
class QgsRelationWidgetWrapper : QgsWidgetWrapper
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsrelationwidgetwrapper.h>
|
|
%End
|
|
|
|
public:
|
|
explicit QgsRelationWidgetWrapper( QgsVectorLayer* vl, const QgsRelation& relation, QWidget* editor = 0, QWidget* parent /TransferThis/ = 0 );
|
|
|
|
protected:
|
|
QWidget* createWidget( QWidget* parent );
|
|
void initWidget( QWidget* editor );
|
|
bool valid() const;
|
|
|
|
public slots:
|
|
void setFeature( const QgsFeature& feature );
|
|
};
|