Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
remove attributerelationedit since all settings for relations are don…
…e in the widget configuration
  • Loading branch information
signedav committed Aug 10, 2020
1 parent 1fadb92 commit f140004
Show file tree
Hide file tree
Showing 6 changed files with 0 additions and 349 deletions.
2 changes: 0 additions & 2 deletions src/gui/CMakeLists.txt
Expand Up @@ -74,7 +74,6 @@ SET(QGIS_GUI_SRCS
callouts/qgscalloutwidget.cpp

attributeformconfig/qgsattributeformcontaineredit.cpp
attributeformconfig/qgsattributerelationedit.cpp
attributeformconfig/qgsattributetypedialog.cpp
attributeformconfig/qgsattributewidgetedit.cpp

Expand Down Expand Up @@ -803,7 +802,6 @@ SET(QGIS_GUI_HDRS
qgswindowmanagerinterface.h

attributeformconfig/qgsattributeformcontaineredit.h
attributeformconfig/qgsattributerelationedit.h
attributeformconfig/qgsattributetypedialog.h
attributeformconfig/qgsattributewidgetedit.h

Expand Down
52 changes: 0 additions & 52 deletions src/gui/attributeformconfig/qgsattributerelationedit.cpp

This file was deleted.

76 changes: 0 additions & 76 deletions src/gui/attributeformconfig/qgsattributerelationedit.h

This file was deleted.

124 changes: 0 additions & 124 deletions src/gui/vector/qgsattributesformproperties.cpp
Expand Up @@ -17,7 +17,6 @@
#include "qgsattributesformproperties.h"
#include "qgsattributetypedialog.h"
#include "qgsattributeformcontaineredit.h"
#include "qgsattributerelationedit.h"
#include "qgsattributewidgetedit.h"
#include "qgsattributesforminitcode.h"
#include "qgsfieldcombobox.h"
Expand Down Expand Up @@ -127,11 +126,7 @@ void QgsAttributesFormProperties::initAvailableWidgetsTree()
{
DnDTreeItemData itemData = DnDTreeItemData( DnDTreeItemData::Relation, QStringLiteral( "%1" ).arg( relation.id() ), QStringLiteral( "%1" ).arg( relation.name() ) );
itemData.setShowLabel( true );

RelationConfig cfg( mLayer, relation.id() );

QTreeWidgetItem *item = mAvailableWidgetsTree->addItem( catitem, itemData );
item->setData( 0, RelationConfigRole, cfg );
item->setData( 0, FieldNameRole, relation.id() );
}
catitem->setExpanded( true );
Expand Down Expand Up @@ -349,62 +344,6 @@ void QgsAttributesFormProperties::storeAttributeTypeDialog()
}
}


void QgsAttributesFormProperties::loadAttributeRelationEdit()
{
if ( mAvailableWidgetsTree->selectedItems().count() != 1 )
return;

QTreeWidgetItem *currentItem = mAvailableWidgetsTree->selectedItems().at( 0 );

RelationConfig cfg = currentItem->data( 0, RelationConfigRole ).value<RelationConfig>();

mAttributeRelationEdit = new QgsAttributeRelationEdit( currentItem->data( 0, FieldNameRole ).toString(), mAttributeTypeFrame );
mAttributeRelationEdit->setCardinalityCombo( tr( "Many to one relation" ) );

QgsRelation relation = QgsProject::instance()->relationManager()->relation( currentItem->data( 0, FieldNameRole ).toString() );

const QList<QgsRelation> relations = QgsProject::instance()->relationManager()->referencingRelations( relation.referencingLayer() );
for ( const QgsRelation &nmrel : relations )
{
if ( nmrel.fieldPairs().at( 0 ).referencingField() != relation.fieldPairs().at( 0 ).referencingField() )
mAttributeRelationEdit->setCardinalityCombo( QStringLiteral( "%1 (%2)" ).arg( nmrel.referencedLayer()->name(), nmrel.fieldPairs().at( 0 ).referencedField() ), nmrel.id() );
}

mAttributeRelationEdit->setCardinality( cfg.mCardinality );
mAttributeRelationEdit->setForceSuppressFormPopup( cfg.mForceSuppressFormPopup );

mAttributeRelationEdit->layout()->setMargin( 0 );
mAttributeTypeFrame->layout()->setMargin( 0 );

mAttributeTypeFrame->layout()->addWidget( mAttributeRelationEdit );
}


void QgsAttributesFormProperties::storeAttributeRelationEdit()
{
if ( !mAttributeRelationEdit )
return;

RelationConfig cfg;

cfg.mCardinality = mAttributeRelationEdit->cardinality();
cfg.mForceSuppressFormPopup = mAttributeRelationEdit->forceSuppressFormPopup();

QTreeWidgetItem *relationContainer = mAvailableWidgetsTree->invisibleRootItem()->child( 1 );

for ( int i = 0; i < relationContainer->childCount(); i++ )
{
QTreeWidgetItem *relationItem = relationContainer->child( i );
DnDTreeItemData itemData = relationItem->data( 0, DnDTreeRole ).value<DnDTreeItemData>();

if ( itemData.name() == mAttributeRelationEdit->mRelationId )
{
relationItem->setData( 0, RelationConfigRole, QVariant::fromValue<RelationConfig>( cfg ) );
}
}
}

void QgsAttributesFormProperties::storeAttributeWidgetEdit()
{
if ( !mAttributeWidgetEdit )
Expand Down Expand Up @@ -445,24 +384,6 @@ void QgsAttributesFormProperties::loadAttributeContainerEdit()
mAttributeTypeFrame->layout()->addWidget( mAttributeContainerEdit );
}

QgsAttributesFormProperties::RelationConfig QgsAttributesFormProperties::configForRelation( const QString &relationId )
{
QTreeWidgetItemIterator itemIt( mAvailableWidgetsTree );
while ( *itemIt )
{
QTreeWidgetItem *item = *itemIt;

if ( item->data( 0, FieldNameRole ).toString() == relationId )
return item->data( 0, RelationConfigRole ).value<RelationConfig>();
++itemIt;
}

// Should never get here
Q_ASSERT( false );
return RelationConfig();
}


QTreeWidgetItem *QgsAttributesFormProperties::loadAttributeEditorTreeItem( QgsAttributeEditorElement *const widgetDef, QTreeWidgetItem *parent, QgsAttributesDnDTree *tree )
{
QTreeWidgetItem *newWidget = nullptr;
Expand Down Expand Up @@ -571,7 +492,6 @@ void QgsAttributesFormProperties::loadAttributeSpecificEditor( QgsAttributesDnDT
if ( layout == QgsEditFormConfig::EditorLayout::TabLayout )
storeAttributeWidgetEdit();
storeAttributeTypeDialog();
storeAttributeRelationEdit();
storeAttributeContainerEdit();

clearAttributeTypeFrame();
Expand All @@ -590,7 +510,6 @@ void QgsAttributesFormProperties::loadAttributeSpecificEditor( QgsAttributesDnDT
receiver->selectFirstMatchingItem( itemData );
if ( layout == QgsEditFormConfig::EditorLayout::TabLayout )
loadAttributeWidgetEdit();
loadAttributeRelationEdit();
break;
}
case DnDTreeItemData::Field:
Expand Down Expand Up @@ -633,12 +552,6 @@ void QgsAttributesFormProperties::clearAttributeTypeFrame()
mAttributeTypeDialog->deleteLater();
mAttributeTypeDialog = nullptr;
}
if ( mAttributeRelationEdit )
{
mAttributeTypeFrame->layout()->removeWidget( mAttributeRelationEdit );
mAttributeRelationEdit->deleteLater();
mAttributeRelationEdit = nullptr;
}
if ( mAttributeContainerEdit )
{
mAttributeTypeFrame->layout()->removeWidget( mAttributeContainerEdit );
Expand Down Expand Up @@ -838,7 +751,6 @@ void QgsAttributesFormProperties::apply()
storeAttributeWidgetEdit();
storeAttributeContainerEdit();
storeAttributeTypeDialog();
storeAttributeRelationEdit();

QgsEditFormConfig editFormConfig = mLayer->editFormConfig();

Expand Down Expand Up @@ -916,23 +828,6 @@ void QgsAttributesFormProperties::apply()

editFormConfig.setSuppress( static_cast<QgsEditFormConfig::FeatureFormSuppress>( mFormSuppressCmbBx->currentIndex() ) );

// relations
QTreeWidgetItem *relationContainer = mAvailableWidgetsTree->invisibleRootItem()->child( 1 );

for ( int i = 0; i < relationContainer->childCount(); i++ )
{
QTreeWidgetItem *relationItem = relationContainer->child( i );
DnDTreeItemData itemData = relationItem->data( 0, DnDTreeRole ).value<DnDTreeItemData>();

RelationConfig relCfg = configForRelation( itemData.name() );

QVariantMap cfg;
cfg[QStringLiteral( "nm-rel" )] = relCfg.mCardinality.toString();
cfg[QStringLiteral( "force-suppress-popup" )] = relCfg.mForceSuppressFormPopup;

editFormConfig.setWidgetConfig( itemData.name(), cfg );
}

mLayer->setEditFormConfig( editFormConfig );
}

Expand Down Expand Up @@ -961,25 +856,6 @@ QgsAttributesFormProperties::FieldConfig::operator QVariant()
return QVariant::fromValue<QgsAttributesFormProperties::FieldConfig>( *this );
}

/*
* RelationConfig implementation
*/
QgsAttributesFormProperties::RelationConfig::RelationConfig() = default;

QgsAttributesFormProperties::RelationConfig::RelationConfig( QgsVectorLayer *layer, const QString &relationId )
{
const QVariant nmrelcfg = layer->editFormConfig().widgetConfig( relationId ).value( QStringLiteral( "nm-rel" ) );
const QVariant forceSuppressFormPopup = layer->editFormConfig().widgetConfig( relationId ).value( QStringLiteral( "force-suppress-popup" ), false );

mForceSuppressFormPopup = forceSuppressFormPopup.toBool();
mCardinality = nmrelcfg;
}

QgsAttributesFormProperties::RelationConfig::operator QVariant()
{
return QVariant::fromValue<QgsAttributesFormProperties::RelationConfig>( *this );
}

/*
* DnDTree implementation
*/
Expand Down

0 comments on commit f140004

Please sign in to comment.