Skip to content

Commit

Permalink
Apply review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
nirvn committed Jan 14, 2023
1 parent 874c2a6 commit cda8294
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 37 deletions.
19 changes: 0 additions & 19 deletions src/core/layout/qgslayoutitemattributetable.cpp
Expand Up @@ -22,7 +22,6 @@
#include "qgslayoututils.h"
#include "qgsfeatureiterator.h"
#include "qgsvectorlayer.h"
#include "qgsvectorlayerutils.h"
#include "qgslayoutframe.h"
#include "qgsproject.h"
#include "qgsrelationmanager.h"
Expand Down Expand Up @@ -576,27 +575,9 @@ bool QgsLayoutItemAttributeTable::getTableContents( QgsLayoutTableContents &cont

if ( mUseConditionalStyling )
{
QgsConditionalStyle constraintstyle;
if ( QgsVectorLayerUtils::attributeHasConstraints( layer, idx ) )
{
QStringList errors;
if ( !QgsVectorLayerUtils::validateAttribute( layer, f, idx, errors, QgsFieldConstraints::ConstraintStrengthHard ) )
{
constraintstyle = layer->conditionalStyles()->constraintFailureStyles( QgsFieldConstraints::ConstraintStrengthHard );
}
else
{
if ( !QgsVectorLayerUtils::validateAttribute( layer, f, idx, errors, QgsFieldConstraints::ConstraintStrengthSoft ) )
{
constraintstyle = layer->conditionalStyles()->constraintFailureStyles( QgsFieldConstraints::ConstraintStrengthSoft );
}
}
}

QList<QgsConditionalStyle> styles = conditionalStyles->fieldStyles( layer->fields().at( idx ).name() );
styles = QgsConditionalStyle::matchingConditionalStyles( styles, val, context );
styles.insert( 0, rowStyle );
styles.insert( 0, constraintstyle );
style = QgsConditionalStyle::compressStyles( styles );
}

Expand Down
26 changes: 12 additions & 14 deletions src/core/qgsconditionalstyle.cpp
Expand Up @@ -31,22 +31,20 @@ QgsConditionalStyle QgsConditionalLayerStyles::constraintFailureStyles( QgsField
switch ( strength )
{
case QgsFieldConstraints::ConstraintStrengthHard:
if ( !mHardConstraintFailureStyle )
{
mHardConstraintFailureStyle = std::make_unique<QgsConditionalStyle>();
mHardConstraintFailureStyle->setBackgroundColor( QColor( 255, 152, 0 ) );
mHardConstraintFailureStyle->setTextColor( QColor( 0, 0, 0 ) );
}
return *mHardConstraintFailureStyle.get();
{
QgsConditionalStyle hardConstraintFailureStyle;
hardConstraintFailureStyle.setBackgroundColor( QColor( 255, 152, 0 ) );
hardConstraintFailureStyle.setTextColor( QColor( 0, 0, 0 ) );
return hardConstraintFailureStyle;
}

case QgsFieldConstraints::ConstraintStrengthSoft:
if ( !mSoftConstraintFailureStyle )
{
mSoftConstraintFailureStyle = std::make_unique<QgsConditionalStyle>();
mSoftConstraintFailureStyle->setBackgroundColor( QColor( 255, 191, 12 ) );
mSoftConstraintFailureStyle->setTextColor( QColor( 0, 0, 0 ) );
}
return *mSoftConstraintFailureStyle.get();
{
QgsConditionalStyle softConstraintFailureStyle;
softConstraintFailureStyle.setBackgroundColor( QColor( 255, 191, 12 ) );
softConstraintFailureStyle.setTextColor( QColor( 0, 0, 0 ) );
return softConstraintFailureStyle;
}

case QgsFieldConstraints::ConstraintStrengthNotSet:
return QgsConditionalStyle();
Expand Down
2 changes: 0 additions & 2 deletions src/core/qgsconditionalstyle.h
Expand Up @@ -122,8 +122,6 @@ class CORE_EXPORT QgsConditionalLayerStyles : public QObject
private:
QHash<QString, QgsConditionalStyles> mFieldStyles;
QgsConditionalStyles mRowStyles;
std::unique_ptr<QgsConditionalStyle> mHardConstraintFailureStyle;
std::unique_ptr<QgsConditionalStyle> mSoftConstraintFailureStyle;
};

/**
Expand Down
2 changes: 1 addition & 1 deletion src/gui/attributetable/qgsattributetablefiltermodel.h
Expand Up @@ -49,7 +49,7 @@ class GUI_EXPORT QgsAttributeTableFilterModel: public QSortFilterProxyModel, pub
ShowVisible, //!< Show only visible features (depends on the map canvas)
ShowFilteredList, //!< Show only features whose ids are on the filter list. {\see setFilteredFeatures}
ShowEdited, //!< Show only features which have unsaved changes
ShowInvalid, //!< Show only features not respecting constraints
ShowInvalid, //!< Show only features not respecting constraints (since QGIS 3.30)
};
Q_ENUM( FilterMode )

Expand Down
10 changes: 9 additions & 1 deletion src/gui/attributetable/qgsdualview.cpp
Expand Up @@ -366,9 +366,17 @@ void QgsDualView::setFilterMode( QgsAttributeTableFilterModel::FilterMode filter
connect( masterModel()->layer(), &QgsVectorLayer::layerModified, this, &QgsDualView::updateEditedAddedFeatures );
break;

case QgsAttributeTableFilterModel::ShowInvalid:
{
const QgsExpressionContext context( QgsExpressionContextUtils::globalProjectLayerScopes( mLayer ) );
filterFeatures( QStringLiteral( "is_feature_valid() = false" ), context );
connect( mFilterModel, &QgsAttributeTableFilterModel::featuresFiltered, this, &QgsDualView::filterChanged );
connect( mFilterModel, &QgsAttributeTableFilterModel::filterError, this, &QgsDualView::filterError );
break;
}

case QgsAttributeTableFilterModel::ShowAll:
case QgsAttributeTableFilterModel::ShowFilteredList:
case QgsAttributeTableFilterModel::ShowInvalid:
{
const QString filterExpression = filterMode == QgsAttributeTableFilterModel::ShowFilteredList ? mFilterModel->filterExpression() : QString();
if ( !filterExpression.isEmpty() )
Expand Down

0 comments on commit cda8294

Please sign in to comment.