Skip to content

Commit ea95034

Browse files
committed
replace the message bar by a multiline qlabel
1 parent 36d7dc4 commit ea95034

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

src/gui/qgsattributeform.cpp

+16-12
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ int QgsAttributeForm::sFormCounter = 0;
4949

5050
QgsAttributeForm::QgsAttributeForm( QgsVectorLayer* vl, const QgsFeature &feature, const QgsAttributeEditorContext &context, QWidget* parent )
5151
: QWidget( parent )
52-
, mInvalidConstraintMessageBarItem( nullptr )
5352
, mLayer( vl )
5453
, mMessageBar( nullptr )
5554
, mMultiEditUnsavedMessageBarItem( nullptr )
5655
, mMultiEditMessageBarItem( nullptr )
56+
, mInvalidConstraintMessage( nullptr )
5757
, mContext( context )
5858
, mButtonBox( nullptr )
5959
, mSearchButtonBox( nullptr )
@@ -762,29 +762,29 @@ bool QgsAttributeForm::currentFormFeature( QgsFeature &feature )
762762

763763
void QgsAttributeForm::clearInvalidConstraintsMessage()
764764
{
765-
if ( mInvalidConstraintMessageBarItem != nullptr )
766-
{
767-
mMessageBar->popWidget( mInvalidConstraintMessageBarItem );
768-
mInvalidConstraintMessageBarItem = nullptr;
769-
}
765+
mInvalidConstraintMessage->clear();
766+
mInvalidConstraintMessage->setStyleSheet( "" );
770767
}
771768

772769
void QgsAttributeForm::displayInvalidConstraintMessage( const QStringList &f,
773770
const QStringList &d )
774771
{
775772
clearInvalidConstraintsMessage();
776773

777-
// show only the third first error
774+
// show only the third first errors (to avoid a too long label)
778775
int max = 3;
779776
int size = f.size() > max ? max : f.size();
780777
QString descriptions;
781778
for ( int i = 0; i < size; i++ )
782-
descriptions += "<br />- " + f[i] + ": " + d[i];
779+
descriptions += QString( "<li>%1: <i>%2</i></li>" ).arg( f[i] ).arg( d[i] );
780+
781+
QString icPath = QgsApplication::iconPath( "/mIconWarn.png" );
783782

784-
mInvalidConstraintMessageBarItem =
785-
new QgsMessageBarItem( tr( "Invalid fields: " ),
786-
descriptions, QgsMessageBar::WARNING );
787-
mMessageBar->pushItem( mInvalidConstraintMessageBarItem );
783+
QString title = QString( "<img src=\"%1\"> <b>%2:" ).arg( icPath ).arg( tr( "Invalid fields" ) );
784+
QString msg = QString( "%1</b><ul>%2</ul>" ).arg( title ).arg( descriptions ) ;
785+
786+
mInvalidConstraintMessage->setText( msg );
787+
mInvalidConstraintMessage->setStyleSheet( "QLabel { background-color : #ffc800; }" );
788788
}
789789

790790
bool QgsAttributeForm::currentFormValidConstraints( QStringList &invalidFields,
@@ -1025,6 +1025,10 @@ void QgsAttributeForm::init()
10251025
mMessageBar = new QgsMessageBar( this );
10261026
mMessageBar->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Fixed );
10271027
vl->addWidget( mMessageBar );
1028+
1029+
mInvalidConstraintMessage = new QLabel( this );
1030+
vl->addWidget( mInvalidConstraintMessage );
1031+
10281032
setLayout( vl );
10291033

10301034
// Get a layout

src/gui/qgsattributeform.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -307,13 +307,13 @@ class GUI_EXPORT QgsAttributeForm : public QWidget
307307
void clearInvalidConstraintsMessage();
308308
void displayInvalidConstraintMessage( const QStringList &invalidFields,
309309
const QStringList &description );
310-
QgsMessageBarItem *mInvalidConstraintMessageBarItem;
311310

312311
QgsVectorLayer* mLayer;
313312
QgsFeature mFeature;
314313
QgsMessageBar* mMessageBar;
315314
QgsMessageBarItem* mMultiEditUnsavedMessageBarItem;
316315
QgsMessageBarItem* mMultiEditMessageBarItem;
316+
QLabel* mInvalidConstraintMessage;
317317
QList<QgsWidgetWrapper*> mWidgets;
318318
QgsAttributeEditorContext mContext;
319319
QDialogButtonBox* mButtonBox;

0 commit comments

Comments
 (0)