21 #include <QProgressDialog>
22 #include <QDialogButtonBox>
23 #include <QPushButton>
30 : QAbstractItemModel( parent )
39 return createIndex( row, column );
51 return mResults.count();
62 if (
index.row() >= mResults.count() ||
index.row() < 0 )
75 case Qt::DecorationRole:
106 mResultsModel->deleteLater();
109 mResultsListView->setModel( mResultsModel );
111 connect( mResultsListView->selectionModel(), &QItemSelectionModel::currentChanged,
this, &QgsValidityCheckResultsWidget::selectionChanged );
113 if ( mResultsModel->
rowCount() > 0 )
116 const QModelIndex firstResult( mResultsModel->
index( 0, 0, QModelIndex() ) );
117 mResultsListView->selectionModel()->select( firstResult, QItemSelectionModel::ClearAndSelect );
118 selectionChanged( firstResult, QModelIndex() );
121 mDescriptionLabel->hide();
126 mDescriptionLabel->setText( description );
127 mDescriptionLabel->setVisible( !description.isEmpty() );
132 std::unique_ptr< QgsFeedback > feedback = std::make_unique< QgsFeedback >();
133 std::unique_ptr< QProgressDialog > progressDialog = std::make_unique< QProgressDialog >( tr(
"Running Checks…" ), tr(
"Abort" ), 0, 100, parent );
134 progressDialog->setWindowTitle( title );
140 progressDialog->setValue( static_cast< int >( progress ) );
141 progressDialog->setLabelText( feedback->property(
"progress" ).toString() ) ;
143 proxyTask->setProxyProgress( progress );
149 while ( ++nIters < 100 )
152 QCoreApplication::processEvents();
156 connect( progressDialog.get(), &QProgressDialog::canceled, progressDialog.get(), [ & ]
165 proxyTask->finalize(
true );
167 if ( feedback->isCanceled() )
170 if ( results.empty() )
177 bool hasCritical =
false;
187 QVBoxLayout *l =
new QVBoxLayout();
190 QDialog dlg( parent );
191 dlg.setWindowTitle( title );
193 QDialogButtonBox *buttons =
new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, &dlg );
194 connect( buttons, &QDialogButtonBox::accepted, &dlg, &QDialog::accept );
195 connect( buttons, &QDialogButtonBox::rejected, &dlg, &QDialog::reject );
198 buttons->button( QDialogButtonBox::Ok )->setEnabled(
false );
199 buttons->button( QDialogButtonBox::Ok )->setToolTip( tr(
"Critical errors prevent this task from proceeding. Please address these issues and then retry." ) );
202 l->addWidget( buttons );
209 void QgsValidityCheckResultsWidget::selectionChanged(
const QModelIndex ¤t,
const QModelIndex & )
212 mDetailedDescriptionTextBrowser->setHtml( desc );