void QgsGeometryCheckerFixDialog::skipError()
{
  mErrors.removeFirst();

  while ( !mErrors.isEmpty() && mErrors.first()->status() >= QgsGeometryCheckError::StatusFixed )
  {
    mErrors.removeFirst();
  }
  if ( !mErrors.isEmpty() )
  {
    setupNextError();
  }
  else
  {
    reject();
  }
}
Ejemplo n.º 2
0
QgsGeometryCheckerFixDialog::QgsGeometryCheckerFixDialog( QgsGeometryChecker *checker,
    const QList<QgsGeometryCheckError *> &errors,
    QgisInterface* iface, QWidget *parent )
    : QDialog( parent )
    , mChecker( checker )
    , mErrors( errors )
    , mIface( iface )
{
  setWindowTitle( tr( "Fix errors" ) );

  QGridLayout* layout = new QGridLayout();
  layout->setContentsMargins( 4, 4, 4, 4 );
  setLayout( layout );

  mResolutionsBox = new QGroupBox();
  mResolutionsBox->setFlat( true );
  mResolutionsBox->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding );
  layout->addWidget( mResolutionsBox, 0, 0, 1, 2 );

  mStatusLabel = new QLabel();
  layout->addWidget( mStatusLabel, 1, 0, 1, 2 );

  mButtonBox = new QDialogButtonBox( QDialogButtonBox::Abort, Qt::Horizontal );
  mNextBtn = mButtonBox->addButton( tr( "Next" ), QDialogButtonBox::ActionRole );
  mFixBtn = mButtonBox->addButton( tr( "Fix" ), QDialogButtonBox::ActionRole );
  mSkipBtn = mButtonBox->addButton( tr( "Skip" ), QDialogButtonBox::ActionRole );
  mNextBtn->setAutoDefault( true );
  mFixBtn->setAutoDefault( true );
  layout->addWidget( mButtonBox, 2, 0, 1, 1 );

  mProgressBar = new QProgressBar();
  mProgressBar->setRange( 0, errors.size() );
  mProgressBar->setValue( 0 );
  layout->addWidget( mProgressBar, 2, 1, 1, 1 );

  mRadioGroup = new QButtonGroup( this );

  connect( mButtonBox, SIGNAL( accepted() ), this, SLOT( accept() ) );
  connect( mButtonBox, SIGNAL( rejected() ), this, SLOT( reject() ) );
  connect( mNextBtn, SIGNAL( clicked() ), this, SLOT( setupNextError() ) );
  connect( mFixBtn, SIGNAL( clicked() ), this, SLOT( fixError() ) );
  connect( mSkipBtn, SIGNAL( clicked() ), this, SLOT( skipError() ) );

}
void QgsGeometryCheckerFixDialog::showEvent( QShowEvent * )
{
  setupNextError();
}