mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -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
|
||||
{
|
||||
%TypeHeaderCode
|
||||
|
@ -3,238 +3,6 @@ typedef QList<int> QgsAttributeList;
|
||||
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
|
||||
{
|
||||
%TypeHeaderCode
|
||||
|
Loading…
x
Reference in New Issue
Block a user