17#include "moc_qgsvaliditycheckresultswidget.cpp" 
   22#include <QProgressDialog> 
   23#include <QDialogButtonBox> 
   31  : QAbstractItemModel( parent )
 
 
   39  return createIndex( row, column );
 
 
   51  return mResults.count();
 
 
   62  if ( 
index.row() >= mResults.count() || 
index.row() < 0 )
 
   75    case Qt::DecorationRole:
 
 
  105    mResultsModel->deleteLater();
 
  108  mResultsListView->setModel( mResultsModel );
 
  110  connect( mResultsListView->selectionModel(), &QItemSelectionModel::currentChanged, 
this, &QgsValidityCheckResultsWidget::selectionChanged );
 
  112  if ( mResultsModel->
rowCount() > 0 )
 
  115    const QModelIndex firstResult( mResultsModel->
index( 0, 0, QModelIndex() ) );
 
  116    mResultsListView->selectionModel()->select( firstResult, QItemSelectionModel::ClearAndSelect );
 
  117    selectionChanged( firstResult, QModelIndex() );
 
  120  mDescriptionLabel->hide();
 
 
  125  mDescriptionLabel->setText( description );
 
  126  mDescriptionLabel->setVisible( !description.isEmpty() );
 
 
  131  auto feedback = std::make_unique<QgsFeedback>();
 
  132  auto progressDialog = std::make_unique<QProgressDialog>( tr( 
"Running Checks…" ), tr( 
"Abort" ), 0, 100, parent );
 
  133  progressDialog->setWindowTitle( title );
 
  138    progressDialog->setValue( static_cast<int>( progress ) );
 
  139    progressDialog->setLabelText( feedback->property( 
"progress" ).toString() );
 
  141    proxyTask->setProxyProgress( progress );
 
  147    while ( ++nIters < 100 )
 
  150      QCoreApplication::processEvents();
 
  153  connect( progressDialog.get(), &QProgressDialog::canceled, progressDialog.get(), [&] {
 
  161  proxyTask->finalize( 
true );
 
  163  if ( feedback->isCanceled() )
 
  166  if ( results.empty() )
 
  173  bool hasCritical = 
false;
 
  183  QVBoxLayout *l = 
new QVBoxLayout();
 
  186  QDialog dlg( parent );
 
  187  dlg.setWindowTitle( title );
 
  189  QDialogButtonBox *buttons = 
new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, &dlg );
 
  190  connect( buttons, &QDialogButtonBox::accepted, &dlg, &QDialog::accept );
 
  191  connect( buttons, &QDialogButtonBox::rejected, &dlg, &QDialog::reject );
 
  194    buttons->button( QDialogButtonBox::Ok )->setEnabled( 
false );
 
  195    buttons->button( QDialogButtonBox::Ok )->setToolTip( tr( 
"Critical errors prevent this task from proceeding. Please address these issues and then retry." ) );
 
  198  l->addWidget( buttons );
 
 
  205void QgsValidityCheckResultsWidget::selectionChanged( 
const QModelIndex ¤t, 
const QModelIndex & )
 
  208  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.
 
QgsValidityCheckResult::Type type
Result type.
 
@ 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