21#include <QProgressDialog> 
   22#include <QDialogButtonBox> 
   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 );
 
 
  209void QgsValidityCheckResultsWidget::selectionChanged( 
const QModelIndex ¤t, 
const QModelIndex & )
 
  212  mDetailedDescriptionTextBrowser->setHtml( desc );
 
static QgsValidityCheckRegistry * validityCheckRegistry()
Returns the application's validity check registry, used for managing validity checks.
 
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
 
static QgsTaskManager * taskManager()
Returns the application's task manager, used for managing application wide background task handling.
 
void progressChanged(double progress)
Emitted when the feedback object reports a progress change.
 
A QgsTask shell which proxies progress reports.
 
long addTask(QgsTask *task, int priority=0)
Adds a task to the manager.
 
Base class for validity check contexts.
 
QList< QgsValidityCheckResult > runChecks(int type, const QgsValidityCheckContext *context, QgsFeedback *feedback) const
Runs all checks of the specified type and returns a list of results.
 
Represents an individual result from a validity check run by a QgsAbstractValidityCheck subclass.
 
@ Critical
Critical error - notify user of result and prevent operation from proceeding.
 
@ Warning
Warning only, allow operation to proceed but notify user of result.
 
QString detailedDescription
Detailed description of the result (translated), giving users enough detail for them to resolve the e...
 
QString title
A short, translated string summarising the result.
 
A QAbstractItemModel subclass for displaying the results from a QgsAbstractValidityCheck.
 
QgsValidityCheckResultsModel(const QList< QgsValidityCheckResult > &results, QObject *parent=nullptr)
Constructor for QgsValidityCheckResultsModel, showing the specified list of checks results.
 
QModelIndex parent(const QModelIndex &child) const override
 
QModelIndex index(int row, int column, const QModelIndex &parent) const override
 
@ Description
Result detailed description.
 
int columnCount(const QModelIndex &parent) const override
 
QVariant data(const QModelIndex &index, int role) const override
 
int rowCount(const QModelIndex &parent=QModelIndex()) const override