Skip to content

Commit

Permalink
fix edit widget deprecation warnings and sync sip bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
jef-n committed May 24, 2014
1 parent d1da612 commit 0903684
Show file tree
Hide file tree
Showing 5 changed files with 133 additions and 35 deletions.
126 changes: 108 additions & 18 deletions python/core/qgsvectorlayer.sip
Expand Up @@ -118,9 +118,12 @@ class QgsVectorLayer : QgsMapLayer
{
GeneratedLayout,
TabLayout,
UiFileLayout,
UiFileLayout
};

/**
* @deprecated Use the editorWidgetV2() system instead
*/
enum EditType
{
LineEdit,
Expand Down Expand Up @@ -758,16 +761,38 @@ class QgsVectorLayer : QgsMapLayer
*
* @return The id for the editor widget or a NULL string if not applicable
*/
const QString editorWidgetV2( int fieldIdx );
const QString editorWidgetV2( int fieldIdx ) const;

/**
* Get the id for the editor widget used to represent the field at the given index
*
* @param fieldName The name of the field
*
* @return The id for the editor widget or a NULL string if not applicable
*
* @note python method name editorWidgetV2ByName
*/
const QString editorWidgetV2( const QString& fieldName ) const /PyName=editorWidgetV2ByName/;

/**
* Get the configuration for the editor widget used to represent the field at the given index
*
* @param fieldIdx The index of the field
*
* @return The id for the editor widget or a NULL string if not configured
* @return The configuration for the editor widget or an empty config if the field does not exist
*/
const QgsEditorWidgetConfig editorWidgetV2Config( int fieldIdx );
const QgsEditorWidgetConfig editorWidgetV2Config( int fieldIdx ) const;

/**
* Get the configuration for the editor widget used to represent the field at the given index
*
* @param fieldName The name of the field
*
* @return The configuration for the editor widget or an empty config if the field does not exist
*
* @note python method name is editorWidgetV2ConfigByName
*/
const QgsEditorWidgetConfig editorWidgetV2Config( const QString& fieldName ) const /PyName=editorWidgetV2ConfigByName/;

/**
* Returns a list of tabs holding groups and fields
Expand Down Expand Up @@ -841,24 +866,48 @@ class QgsVectorLayer : QgsMapLayer
*/
bool rollBack( bool deleteBuffer = true );

/**get edit type*/
EditType editType( int idx );
/**
* Get edit type
*
* @deprecated Use @see{editorWidgetV2} instead
*/
EditType editType( int idx ) /Deprecated/;

/**set edit type*/
void setEditType( int idx, EditType edit );
/**
* Get edit type
*
* @deprecated Use @see{setEditorWidgetV2} instead
*/
void setEditType( int idx, EditType edit ) /Deprecated/;

/** get the active layout for the attribute editor for this layer (added in 1.9) */
EditorLayout editorLayout();

/** set the active layout for the attribute editor for this layer (added in 1.9) */
void setEditorLayout( EditorLayout editorLayout );

/**
* Set the editor widget type for a field
*
* @param attrIdx Index of the field
* @param widgetType Type id of the editor widget to use
*/
void setEditorWidgetV2( int attrIdx, const QString& widgetType );

/**
* Set the editor widget config for a field
*
* @param attrIdx Index of the field
* @param config The config to set for this field
*/
void setEditorWidgetV2Config( int attrIdx, const QMap<QString, QVariant>& config );

/** set string representing 'true' for a checkbox (added in 1.4) */
void setCheckedState( int idx, QString checked, QString notChecked );
/**
* Set string representing 'true' for a checkbox (added in 1.4)
*
* @deprecated Use @see{setEditorWidgetV2Config} instead
*/
void setCheckedState( int idx, QString checked, QString notChecked ) /Deprecated/;

/** get edit form (added in 1.4) */
QString editForm();
Expand Down Expand Up @@ -886,16 +935,25 @@ class QgsVectorLayer : QgsMapLayer
/** set python function for edit form initialization (added in 1.4) */
void setEditFormInit( QString function );

/**access value map*/
QMap<QString, QVariant> valueMap( int idx );
/**
* Access value map
* @deprecated Use @see{editorWidgetV2Config} instead
*/
QMap<QString, QVariant> valueMap( int idx ) /Deprecated/;

/**access range */
/**
* Access range widget config data
*
* @deprecated Use @see{editorWidgetV2Config} instead
*/
RangeData range( int idx ) /Deprecated/;

/**access relations
/**
* Access value relation widget data
*
* @note added in 1.8
**/
ValueRelationData valueRelation( int idx ) /Deprecated/;
*/
ValueRelationData valueRelation( int idx );

/**
* Get relations, where the foreign key is on this layer
Expand All @@ -905,13 +963,21 @@ class QgsVectorLayer : QgsMapLayer
*/
QList<QgsRelation> referencingRelations( int idx );

/**access date format
/**
* Access date format
*
* @note added in 1.9
*
* @deprecated Use @see{setEditorWdigetV2Config} instead
*/
QString dateFormat( int idx ) /Deprecated/;

/**access widget size for photo and webview widget
/**
* Access widget size for photo and webview widget
*
* @note added in 1.9
*
* @deprecated Use @see{setEditorWdigetV2Config} instead
*/
QSize widgetSize( int idx ) /Deprecated/;

Expand Down Expand Up @@ -1110,6 +1176,9 @@ class QgsVectorLayer : QgsMapLayer
/** This signal is emitted when modifications has been done on layer */
void layerModified();

/** Is emitted, when layer is checked for modifications. Use for last-minute additions */
void beforeModifiedCheck() const;

/** Is emitted, when editing on this layer has started*/
void editingStarted();

Expand Down Expand Up @@ -1179,6 +1248,27 @@ class QgsVectorLayer : QgsMapLayer
/** Signal emitted when setLayerTransparency() is called */
void layerTransparencyChanged( int layerTransparency );

/**
* Signal emitted when a new edit command has been started
*
* @param text Description for this edit command
*/
void editCommandStarted( const QString& text );

/**
* Signal emitted, when an edit command successfully ended
* @note This does not mean it is also committed, only that it is written
* to the edit buffer. See {@link beforeCommitChanges()}
*/
void editCommandEnded();

/**
* Signal emitted, whan an edit command is destroyed
* @note This is not a rollback, it is only related to the current edit command.
* See {@link beforeRollBack()}
*/
void editCommandDestroyed();

protected:
/** Set the extent */
void setExtent( const QgsRectangle &rect );
Expand Down
4 changes: 2 additions & 2 deletions src/app/qgsmergeattributesdialog.cpp
Expand Up @@ -90,8 +90,8 @@ void QgsMergeAttributesDialog::createTableWidgetContents()
int col = 0;
for ( int idx = 0; idx < fields.count(); ++idx )
{
if ( mVectorLayer->editType( idx ) == QgsVectorLayer::Hidden ||
mVectorLayer->editType( idx ) == QgsVectorLayer::Immutable )
if ( mVectorLayer->editorWidgetV2( idx ) == "Hidden" ||
mVectorLayer->editorWidgetV2( idx ) == "Immutable" )
continue;

mTableWidget->setColumnCount( col + 1 );
Expand Down
10 changes: 7 additions & 3 deletions src/core/qgsvectorlayer.h
Expand Up @@ -1120,6 +1120,8 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
* @param fieldName The name of the field
*
* @return The id for the editor widget or a NULL string if not applicable
*
* @note python method name editorWidgetV2ByName
*/
const QString editorWidgetV2( const QString& fieldName ) const;

Expand All @@ -1138,6 +1140,8 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
* @param fieldName The name of the field
*
* @return The configuration for the editor widget or an empty config if the field does not exist
*
* @note python method name is editorWidgetV2ConfigByName
*/
const QgsEditorWidgetConfig editorWidgetV2Config( const QString& fieldName ) const;

Expand Down Expand Up @@ -1252,7 +1256,7 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
/**
* Set string representing 'true' for a checkbox (added in 1.4)
*
* @deprecated Use @see{setEditorWdigetV2Config} instead
* @deprecated Use @see{setEditorWidgetV2Config} instead
*/
Q_DECL_DEPRECATED void setCheckedState( int idx, QString checked, QString notChecked );

Expand Down Expand Up @@ -1284,14 +1288,14 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer

/**
* Access value map
* @deprecated Use @see{editorWdigetV2Config} instead
* @deprecated Use @see{editorWidgetV2Config} instead
*/
Q_DECL_DEPRECATED QMap<QString, QVariant> valueMap( int idx );

/**
* Access range widget config data
*
* @deprecated Use @see{editorWdigetV2Config} instead
* @deprecated Use @see{editorWidgetV2Config} instead
*/
Q_DECL_DEPRECATED RangeData range( int idx );

Expand Down
3 changes: 1 addition & 2 deletions src/mapserver/qgsserverprojectparser.cpp
Expand Up @@ -469,8 +469,7 @@ void QgsServerProjectParser::addLayerProjectSettings( QDomElement& layerElem, QD
attributeElem.setAttribute( "typeName", field.typeName() );

//edit type to text
QgsVectorLayer::EditType typeEnum = vLayer->editType( idx );
attributeElem.setAttribute( "editType", editTypeString( typeEnum ) );
attributeElem.setAttribute( "editType", vLayer->editorWidgetV2( idx ) );
attributeElem.setAttribute( "comment", field.comment() );
attributeElem.setAttribute( "length", field.length() );
attributeElem.setAttribute( "precision", field.precision() );
Expand Down
25 changes: 15 additions & 10 deletions src/mapserver/qgswmsserver.cpp
Expand Up @@ -2903,30 +2903,30 @@ QString QgsWMSServer::replaceValueMapAndRelation( QgsVectorLayer* vl, int idx, c
return attributeVal;
}

QgsVectorLayer::EditType type = vl->editType( idx );
if ( type == QgsVectorLayer::ValueMap )
QString type = vl->editorWidgetV2( idx );
if ( type == "ValueMap" )
{
QMap<QString, QVariant> valueMap = vl->valueMap( idx );
QMap<QString, QVariant>::const_iterator vmapIt = valueMap.constBegin();
for ( ; vmapIt != valueMap.constEnd(); ++vmapIt )
QgsEditorWidgetConfig cfg( vl->editorWidgetV2Config( idx ) );
QMap<QString, QVariant>::const_iterator vmapIt = cfg.constBegin();
for ( ; vmapIt != cfg.constEnd(); ++vmapIt )
{
if ( vmapIt.value().toString() == attributeVal )
{
return vmapIt.key();
}
}
}
else if ( type == QgsVectorLayer::ValueRelation )
else if ( type == "ValueRelation" )
{
QgsVectorLayer::ValueRelationData vrdata = vl->valueRelation( idx );
QgsVectorLayer* layer = qobject_cast<QgsVectorLayer*>( QgsMapLayerRegistry::instance()->mapLayer( vrdata.mLayer ) );
QgsEditorWidgetConfig cfg( vl->editorWidgetV2Config( idx ) );
QgsVectorLayer* layer = qobject_cast<QgsVectorLayer*>( QgsMapLayerRegistry::instance()->mapLayer( cfg.value( "Layer" ).toString() ) );
if ( !layer )
{
return attributeVal;
}

QString outputString;
if ( vrdata.mAllowMulti )
if ( cfg.value( "AllowMulti" ).toBool() )
{
QString valueString = attributeVal;
QStringList valueList = valueString.remove( QChar( '{' ) ).remove( QChar( '}' ) ).split( "," );
Expand All @@ -2936,7 +2936,12 @@ QString QgsWMSServer::replaceValueMapAndRelation( QgsVectorLayer* vl, int idx, c
{
outputString += ";";
}
outputString += relationValue( valueList.at( i ), layer, vrdata.mKey, vrdata.mValue );
outputString += relationValue(
valueList.at( i ),
layer,
cfg.value( "Key" ).toString(),
cfg.value( "Value" ).toString()
);
}
}
return outputString;
Expand Down

0 comments on commit 0903684

Please sign in to comment.