示例#1
0
MainWindow::MainWindow()
{
  setupUi(this);
  tabWidget->setCurrentIndex(0);

  tmpTxtFile = new QTemporaryFile;
  setWindowTitle("Fcitx Table Editor");
  progressBar = new QProgressBar(this);
  progressBar->setWindowModality(Qt::ApplicationModal);
  progressBar->hide();
  statusBar()->addWidget(progressBar);
  connect(&xx, SIGNAL(setProgressRange(int,int)), progressBar, SLOT(setRange(int,int)));
  connect(&xx, SIGNAL(setProgressValue(int)), progressBar, SLOT(setValue(int)));
  connect(this, SIGNAL(setSaveProgressRange(int,int)), progressBar, SLOT(setRange(int,int)));
  connect(this, SIGNAL(setSaveProgressValue(int)), progressBar, SLOT(setValue(int)));

  addWordDict = 0;
  ruleModel = new RuleModel();
  wordModel = new WordModel();
  proxyModel = new FilterProxyModel();
  regType_comboBox->addItem(tr("Regular expression"), QRegExp::RegExp);
  regType_comboBox->addItem(tr("Wildcard"), QRegExp::Wildcard);
  regType_comboBox->addItem(tr("Fixed string"), QRegExp::FixedString);
  regType_comboBox->setCurrentIndex(1);
  resetModel();

  connect(this, SIGNAL(warningHappend(QString,QString)), this, SLOT(popWarning(QString,QString)));
  connect(&openFileWatcher, SIGNAL(finished()), this, SLOT(finishedOpen()));
}
bool QgsAdvancedDigitizingDockWidget::applyConstraints( QgsMapMouseEvent *e )
{
  QgsCadUtils::AlignMapPointContext context;
  context.snappingUtils = mMapCanvas->snappingUtils();
  context.mapUnitsPerPixel = mMapCanvas->mapUnitsPerPixel();
  context.xConstraint = _constraint( mXConstraint.get() );
  context.yConstraint = _constraint( mYConstraint.get() );
  context.distanceConstraint = _constraint( mDistanceConstraint.get() );
  context.angleConstraint = _constraint( mAngleConstraint.get() );
  context.cadPointList = mCadPointList;

  context.commonAngleConstraint.locked = true;
  context.commonAngleConstraint.relative = context.angleConstraint.relative;
  context.commonAngleConstraint.value = mCommonAngleConstraint;

  QgsCadUtils::AlignMapPointOutput output = QgsCadUtils::alignMapPoint( e->originalMapPoint(), context );

  bool res = output.valid;
  QgsPointXY point = output.finalMapPoint;
  mSnappedSegment.clear();
  if ( output.edgeMatch.hasEdge() )
  {
    QgsPointXY edgePt0, edgePt1;
    output.edgeMatch.edgePoints( edgePt0, edgePt1 );
    mSnappedSegment << edgePt0 << edgePt1;
  }
  if ( mAngleConstraint->lockMode() != CadConstraint::HardLock )
  {
    if ( output.softLockCommonAngle != -1 )
    {
      mAngleConstraint->setLockMode( CadConstraint::SoftLock );
      mAngleConstraint->setValue( output.softLockCommonAngle );
    }
    else
    {
      mAngleConstraint->setLockMode( CadConstraint::NoLock );
    }
  }

  // set the point coordinates in the map event
  e->setMapPoint( point );

  // update the point list
  updateCurrentPoint( point );

  updateUnlockedConstraintValues( point );

  if ( res )
  {
    emit popWarning();
  }
  else
  {
    emit pushWarning( tr( "Some constraints are incompatible. Resulting point might be incorrect." ) );
  }

  return res;
}