Skip to content

Commit

Permalink
Disable deleting or renaming generated relations
Browse files Browse the repository at this point in the history
  • Loading branch information
suricactus committed Jan 18, 2021
1 parent 5964e0b commit 1fa1c8f
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/app/qgsrelationmanagerdialog.cpp
Expand Up @@ -31,10 +31,10 @@ class RelationNameEditorDelegate: public QStyledItemDelegate
, mEditableColumns( editableColumns )
{}

virtual QWidget *createEditor( QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index ) const
virtual QWidget *createEditor( QWidget *parentWidget, const QStyleOptionViewItem &option, const QModelIndex &index ) const
{
if ( mEditableColumns.contains( index.column() ) )
return QStyledItemDelegate::createEditor( parent, option, index );
return QStyledItemDelegate::createEditor( parentWidget, option, index );

return nullptr;
}
Expand All @@ -51,7 +51,7 @@ QgsRelationManagerDialog::QgsRelationManagerDialog( QgsRelationManager *relation
setupUi( this );

mRelationsTree->header()->setSectionResizeMode( QHeaderView::ResizeToContents );
mRelationsTree->setItemDelegate( new RelationNameEditorDelegate( QList<int>( {0} ), this ) );
mRelationsTree->setItemDelegate( new RelationNameEditorDelegate( QList<int>( {0} ), mRelationsTree ) );

connect( mBtnAddRelation, &QPushButton::clicked, this, &QgsRelationManagerDialog::mBtnAddRelation_clicked );
connect( mActionAddPolymorphicRelation, &QAction::triggered, this, &QgsRelationManagerDialog::mActionAddPolymorphicRelation_triggered );
Expand Down Expand Up @@ -107,6 +107,7 @@ void QgsRelationManagerDialog::addRelation( const QgsRelation &rel )

if ( rel.polymorphicRelationId().isEmpty() )
{
item->setFlags( item->flags() | Qt::ItemIsEditable );
mRelationsTree->insertTopLevelItem( row, item );
}
else
Expand All @@ -123,14 +124,14 @@ void QgsRelationManagerDialog::addRelation( const QgsRelation &rel )
if ( polymorphicRelation.id() != rel.polymorphicRelationId() )
continue;

item->setFlags( item->flags().setFlag( Qt::ItemIsSelectable, false ) );
parentItem->addChild( item );
break;
}
}

// Save relation in first column's item
item->setData( 0, Qt::UserRole, QVariant::fromValue<QgsRelation>( rel ) );
item->setFlags( item->flags() | Qt::ItemIsEditable );

item->setText( 0, rel.name() );
item->setText( 1, rel.referencedLayer()->name() );
Expand Down Expand Up @@ -333,5 +334,5 @@ QList< QgsPolymorphicRelation > QgsRelationManagerDialog::polymorphicRelations()

void QgsRelationManagerDialog::onSelectionChanged()
{
mBtnRemoveRelation->setEnabled( mRelationsTree->selectionModel()->hasSelection() );
mBtnRemoveRelation->setEnabled( ! mRelationsTree->selectionModel()->selectedRows().isEmpty() );
}

0 comments on commit 1fa1c8f

Please sign in to comment.