mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-16 00:03:12 -04:00
Move drag and drop designer python API to QgsEdtiFormConfig
This commit is contained in:
parent
faf6b2654c
commit
e3de0c119a
@ -15,6 +15,248 @@
|
|||||||
* *
|
* *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
class QgsAttributeEditorElement : QObject
|
||||||
|
{
|
||||||
|
%TypeHeaderCode
|
||||||
|
#include "qgsvectorlayer.h"
|
||||||
|
%End
|
||||||
|
|
||||||
|
%ConvertToSubClassCode
|
||||||
|
QgsAttributeEditorElement* e = qobject_cast<QgsAttributeEditorElement*>( sipCpp );
|
||||||
|
|
||||||
|
sipType = 0;
|
||||||
|
if ( e )
|
||||||
|
{
|
||||||
|
switch ( e->type() )
|
||||||
|
{
|
||||||
|
case QgsAttributeEditorElement::AeTypeContainer: sipType = sipType_QgsAttributeEditorContainer; break;
|
||||||
|
case QgsAttributeEditorElement::AeTypeField: sipType = sipType_QgsAttributeEditorField; break;
|
||||||
|
case QgsAttributeEditorElement::AeTypeRelation: sipType = sipType_QgsAttributeEditorRelation; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%End
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
enum AttributeEditorType
|
||||||
|
{
|
||||||
|
AeTypeContainer,
|
||||||
|
AeTypeField,
|
||||||
|
AeTypeRelation,
|
||||||
|
AeTypeInvalid
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param type The type of the new element. Should never
|
||||||
|
* @param name
|
||||||
|
* @param parent
|
||||||
|
*/
|
||||||
|
QgsAttributeEditorElement( AttributeEditorType type, const QString& name, QObject *parent /TransferThis/ = NULL );
|
||||||
|
|
||||||
|
//! Destructor
|
||||||
|
virtual ~QgsAttributeEditorElement();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the name of this element
|
||||||
|
*
|
||||||
|
* @return The name for this element
|
||||||
|
*/
|
||||||
|
QString name() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The type of this element
|
||||||
|
*
|
||||||
|
* @return The type
|
||||||
|
*/
|
||||||
|
AttributeEditorType type() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is reimplemented in classes inheriting from this to serialize it.
|
||||||
|
*
|
||||||
|
* @param doc The QDomDocument which is used to create new XML elements
|
||||||
|
*
|
||||||
|
* @return An DOM element which represents this element
|
||||||
|
*/
|
||||||
|
virtual QDomElement toDomElement( QDomDocument& doc ) const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class QgsAttributeEditorContainer : QgsAttributeEditorElement
|
||||||
|
{
|
||||||
|
%TypeHeaderCode
|
||||||
|
#include "qgsvectorlayer.h"
|
||||||
|
%End
|
||||||
|
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* Creates a new attribute editor container
|
||||||
|
*
|
||||||
|
* @param name The name to show as title
|
||||||
|
* @param parent The parent. May be another container.
|
||||||
|
*/
|
||||||
|
QgsAttributeEditorContainer( const QString& name, QObject *parent /TransferThis/ );
|
||||||
|
|
||||||
|
//! Destructor
|
||||||
|
~QgsAttributeEditorContainer();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will serialize this containers information into a QDomElement for saving it in an XML file.
|
||||||
|
*
|
||||||
|
* @param doc The QDomDocument used to generate the QDomElement
|
||||||
|
*
|
||||||
|
* @return The XML element
|
||||||
|
*/
|
||||||
|
virtual QDomElement toDomElement( QDomDocument& doc ) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a child element to this container. This may be another container, a field or a relation.
|
||||||
|
*
|
||||||
|
* @param element The element to add as child
|
||||||
|
*/
|
||||||
|
virtual void addChildElement( QgsAttributeEditorElement *widget );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if this container is rendered as collapsible group box or tab in a tabwidget
|
||||||
|
*
|
||||||
|
* @param isGroupBox If true, this will be a group box
|
||||||
|
*/
|
||||||
|
virtual void setIsGroupBox( bool isGroupBox );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if this container is going to be rendered as a group box
|
||||||
|
*
|
||||||
|
* @return True if it will be a group box, false if it will be a tab
|
||||||
|
*/
|
||||||
|
virtual bool isGroupBox() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of the children elements of this container
|
||||||
|
*
|
||||||
|
* @return A list of elements
|
||||||
|
*/
|
||||||
|
QList<QgsAttributeEditorElement*> children() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Traverses the element tree to find any element of the specified type
|
||||||
|
*
|
||||||
|
* @param type The type which should be searched
|
||||||
|
*
|
||||||
|
* @return A list of elements of the type which has been searched for
|
||||||
|
*/
|
||||||
|
virtual QList<QgsAttributeEditorElement*> findElements( AttributeEditorType type ) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the name of this container
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
*/
|
||||||
|
void setName( const QString& name );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of columns in this group
|
||||||
|
*/
|
||||||
|
int columnCount() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the number of columns in this group
|
||||||
|
*/
|
||||||
|
void setColumnCount( int columnCount );
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This element will load a field's widget onto the form.
|
||||||
|
*/
|
||||||
|
class QgsAttributeEditorField : QgsAttributeEditorElement
|
||||||
|
{
|
||||||
|
%TypeHeaderCode
|
||||||
|
#include "qgsvectorlayer.h"
|
||||||
|
%End
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* Creates a new attribute editor element which represents a field
|
||||||
|
*
|
||||||
|
* @param name The name of the element
|
||||||
|
* @param idx The index of the field which should be embedded
|
||||||
|
* @param parent The parent of this widget (used as container)
|
||||||
|
*/
|
||||||
|
QgsAttributeEditorField( const QString& name, int idx, QObject *parent /TransferThis/ );
|
||||||
|
|
||||||
|
//! Destructor
|
||||||
|
~QgsAttributeEditorField();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will serialize this elements information into a QDomElement for saving it in an XML file.
|
||||||
|
*
|
||||||
|
* @param doc The QDomDocument used to generate the QDomElement
|
||||||
|
*
|
||||||
|
* @return The XML element
|
||||||
|
*/
|
||||||
|
virtual QDomElement toDomElement( QDomDocument& doc ) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the index of the field
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int idx() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This element will load a relation editor onto the form.
|
||||||
|
*
|
||||||
|
* @note Added in 2.1
|
||||||
|
*/
|
||||||
|
class QgsAttributeEditorRelation : QgsAttributeEditorElement
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* Creates a new element which embeds a relation.
|
||||||
|
*
|
||||||
|
* @param name The name of this element
|
||||||
|
* @param relationId The id of the relation to embed
|
||||||
|
* @param parent The parent (used as container)
|
||||||
|
*/
|
||||||
|
QgsAttributeEditorRelation( const QString& name, const QString &relationId, QObject *parent /TransferThis/ );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new element which embeds a relation.
|
||||||
|
*
|
||||||
|
* @param name The name of this element
|
||||||
|
* @param relation The relation to embed
|
||||||
|
* @param parent The parent (used as container)
|
||||||
|
*/
|
||||||
|
QgsAttributeEditorRelation( const QString& name, const QgsRelation& relation, QObject *parent /TransferThis/);
|
||||||
|
|
||||||
|
//! Destructor
|
||||||
|
~QgsAttributeEditorRelation();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will serialize this elements information into a QDomElement for saving it in an XML file.
|
||||||
|
*
|
||||||
|
* @param doc The QDomDocument used to generate the QDomElement
|
||||||
|
*
|
||||||
|
* @return The XML element
|
||||||
|
*/
|
||||||
|
virtual QDomElement toDomElement( QDomDocument& doc ) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the id of the relation which shall be embedded
|
||||||
|
*
|
||||||
|
* @return the id
|
||||||
|
*/
|
||||||
|
const QgsRelation& relation() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes the relation from the id
|
||||||
|
*
|
||||||
|
* @param relManager The relation manager to use for the initialization
|
||||||
|
* @return true if the relation was found in the relationmanager
|
||||||
|
*/
|
||||||
|
bool init( QgsRelationManager *relManager );
|
||||||
|
};
|
||||||
|
|
||||||
class QgsEditFormConfig : QObject
|
class QgsEditFormConfig : QObject
|
||||||
{
|
{
|
||||||
%TypeHeaderCode
|
%TypeHeaderCode
|
||||||
|
@ -3,238 +3,6 @@ typedef QList<int> QgsAttributeList;
|
|||||||
typedef QSet<int> QgsAttributeIds;
|
typedef QSet<int> QgsAttributeIds;
|
||||||
|
|
||||||
|
|
||||||
class QgsAttributeEditorElement : QObject
|
|
||||||
{
|
|
||||||
%TypeHeaderCode
|
|
||||||
#include "qgsvectorlayer.h"
|
|
||||||
%End
|
|
||||||
|
|
||||||
%ConvertToSubClassCode
|
|
||||||
QgsAttributeEditorElement* e = qobject_cast<QgsAttributeEditorElement*>( sipCpp );
|
|
||||||
|
|
||||||
sipType = 0;
|
|
||||||
if ( e )
|
|
||||||
{
|
|
||||||
switch ( e->type() )
|
|
||||||
{
|
|
||||||
case QgsAttributeEditorElement::AeTypeContainer: sipType = sipType_QgsAttributeEditorContainer; break;
|
|
||||||
case QgsAttributeEditorElement::AeTypeField: sipType = sipType_QgsAttributeEditorField; break;
|
|
||||||
case QgsAttributeEditorElement::AeTypeRelation: sipType = sipType_QgsAttributeEditorRelation; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%End
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
enum AttributeEditorType
|
|
||||||
{
|
|
||||||
AeTypeContainer,
|
|
||||||
AeTypeField,
|
|
||||||
AeTypeRelation,
|
|
||||||
AeTypeInvalid
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* @param type The type of the new element. Should never
|
|
||||||
* @param name
|
|
||||||
* @param parent
|
|
||||||
*/
|
|
||||||
QgsAttributeEditorElement( AttributeEditorType type, const QString& name, QObject *parent /TransferThis/ = NULL );
|
|
||||||
|
|
||||||
//! Destructor
|
|
||||||
virtual ~QgsAttributeEditorElement();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the name of this element
|
|
||||||
*
|
|
||||||
* @return The name for this element
|
|
||||||
*/
|
|
||||||
QString name() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The type of this element
|
|
||||||
*
|
|
||||||
* @return The type
|
|
||||||
*/
|
|
||||||
AttributeEditorType type() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Is reimplemented in classes inheriting from this to serialize it.
|
|
||||||
*
|
|
||||||
* @param doc The QDomDocument which is used to create new XML elements
|
|
||||||
*
|
|
||||||
* @return An DOM element which represents this element
|
|
||||||
*/
|
|
||||||
virtual QDomElement toDomElement( QDomDocument& doc ) const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QgsAttributeEditorContainer : QgsAttributeEditorElement
|
|
||||||
{
|
|
||||||
%TypeHeaderCode
|
|
||||||
#include "qgsvectorlayer.h"
|
|
||||||
%End
|
|
||||||
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* Creates a new attribute editor container
|
|
||||||
*
|
|
||||||
* @param name The name to show as title
|
|
||||||
* @param parent The parent. May be another container.
|
|
||||||
*/
|
|
||||||
QgsAttributeEditorContainer( const QString& name, QObject *parent /TransferThis/ );
|
|
||||||
|
|
||||||
//! Destructor
|
|
||||||
~QgsAttributeEditorContainer();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Will serialize this containers information into a QDomElement for saving it in an XML file.
|
|
||||||
*
|
|
||||||
* @param doc The QDomDocument used to generate the QDomElement
|
|
||||||
*
|
|
||||||
* @return The XML element
|
|
||||||
*/
|
|
||||||
virtual QDomElement toDomElement( QDomDocument& doc ) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a child element to this container. This may be another container, a field or a relation.
|
|
||||||
*
|
|
||||||
* @param element The element to add as child
|
|
||||||
*/
|
|
||||||
virtual void addChildElement( QgsAttributeEditorElement *widget );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determines if this container is rendered as collapsible group box or tab in a tabwidget
|
|
||||||
*
|
|
||||||
* @param isGroupBox If true, this will be a group box
|
|
||||||
*/
|
|
||||||
virtual void setIsGroupBox( bool isGroupBox );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns if this container is going to be rendered as a group box
|
|
||||||
*
|
|
||||||
* @return True if it will be a group box, false if it will be a tab
|
|
||||||
*/
|
|
||||||
virtual bool isGroupBox() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a list of the children elements of this container
|
|
||||||
*
|
|
||||||
* @return A list of elements
|
|
||||||
*/
|
|
||||||
QList<QgsAttributeEditorElement*> children() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Traverses the element tree to find any element of the specified type
|
|
||||||
*
|
|
||||||
* @param type The type which should be searched
|
|
||||||
*
|
|
||||||
* @return A list of elements of the type which has been searched for
|
|
||||||
*/
|
|
||||||
virtual QList<QgsAttributeEditorElement*> findElements( AttributeEditorType type ) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Change the name of this container
|
|
||||||
*
|
|
||||||
* @param name
|
|
||||||
*/
|
|
||||||
virtual void setName( const QString& name );
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This element will load a field's widget onto the form.
|
|
||||||
*/
|
|
||||||
class QgsAttributeEditorField : QgsAttributeEditorElement
|
|
||||||
{
|
|
||||||
%TypeHeaderCode
|
|
||||||
#include "qgsvectorlayer.h"
|
|
||||||
%End
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* Creates a new attribute editor element which represents a field
|
|
||||||
*
|
|
||||||
* @param name The name of the element
|
|
||||||
* @param idx The index of the field which should be embedded
|
|
||||||
* @param parent The parent of this widget (used as container)
|
|
||||||
*/
|
|
||||||
QgsAttributeEditorField( const QString& name, int idx, QObject *parent /TransferThis/ );
|
|
||||||
|
|
||||||
//! Destructor
|
|
||||||
~QgsAttributeEditorField();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Will serialize this elements information into a QDomElement for saving it in an XML file.
|
|
||||||
*
|
|
||||||
* @param doc The QDomDocument used to generate the QDomElement
|
|
||||||
*
|
|
||||||
* @return The XML element
|
|
||||||
*/
|
|
||||||
virtual QDomElement toDomElement( QDomDocument& doc ) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the index of the field
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
int idx() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This element will load a relation editor onto the form.
|
|
||||||
*
|
|
||||||
* @note Added in 2.1
|
|
||||||
*/
|
|
||||||
class QgsAttributeEditorRelation : QgsAttributeEditorElement
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
* Creates a new element which embeds a relation.
|
|
||||||
*
|
|
||||||
* @param name The name of this element
|
|
||||||
* @param relationId The id of the relation to embed
|
|
||||||
* @param parent The parent (used as container)
|
|
||||||
*/
|
|
||||||
QgsAttributeEditorRelation( const QString& name, const QString &relationId, QObject *parent /TransferThis/ );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new element which embeds a relation.
|
|
||||||
*
|
|
||||||
* @param name The name of this element
|
|
||||||
* @param relation The relation to embed
|
|
||||||
* @param parent The parent (used as container)
|
|
||||||
*/
|
|
||||||
QgsAttributeEditorRelation( const QString& name, const QgsRelation& relation, QObject *parent /TransferThis/);
|
|
||||||
|
|
||||||
//! Destructor
|
|
||||||
~QgsAttributeEditorRelation();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Will serialize this elements information into a QDomElement for saving it in an XML file.
|
|
||||||
*
|
|
||||||
* @param doc The QDomDocument used to generate the QDomElement
|
|
||||||
*
|
|
||||||
* @return The XML element
|
|
||||||
*/
|
|
||||||
virtual QDomElement toDomElement( QDomDocument& doc ) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the id of the relation which shall be embedded
|
|
||||||
*
|
|
||||||
* @return the id
|
|
||||||
*/
|
|
||||||
const QgsRelation& relation() const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializes the relation from the id
|
|
||||||
*
|
|
||||||
* @param relManager The relation manager to use for the initialization
|
|
||||||
* @return true if the relation was found in the relationmanager
|
|
||||||
*/
|
|
||||||
bool init( QgsRelationManager *relManager );
|
|
||||||
};
|
|
||||||
|
|
||||||
struct QgsVectorJoinInfo
|
struct QgsVectorJoinInfo
|
||||||
{
|
{
|
||||||
%TypeHeaderCode
|
%TypeHeaderCode
|
||||||
|
Loading…
x
Reference in New Issue
Block a user