int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QMainWindow::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: backgroundButtonGroupClicked((*reinterpret_cast< QAbstractButton*(*)>(_a[1]))); break;
        case 1: buttonGroupClicked((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 2: deleteItem(); break;
        case 3: pointerGroupClicked((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 4: bringToFront(); break;
        case 5: sendToBack(); break;
        case 6: itemInserted((*reinterpret_cast< DiagramItem*(*)>(_a[1]))); break;
        case 7: textInserted((*reinterpret_cast< QGraphicsTextItem*(*)>(_a[1]))); break;
        case 8: currentFontChanged((*reinterpret_cast< const QFont(*)>(_a[1]))); break;
        case 9: fontSizeChanged((*reinterpret_cast< const QString(*)>(_a[1]))); break;
        case 10: sceneScaleChanged((*reinterpret_cast< const QString(*)>(_a[1]))); break;
        case 11: textColorChanged(); break;
        case 12: itemColorChanged(); break;
        case 13: lineColorChanged(); break;
        case 14: textButtonTriggered(); break;
        case 15: fillButtonTriggered(); break;
        case 16: lineButtonTriggered(); break;
        case 17: handleFontChange(); break;
        case 18: itemSelected((*reinterpret_cast< QGraphicsItem*(*)>(_a[1]))); break;
        case 19: about(); break;
        default: ;
        }
        _id -= 20;
    }
    return _id;
}
Example #2
0
bool Scene::eventFilter(QObject* object, QEvent* event) {
  if (event->type() == QEvent::GraphicsSceneWheel) {
    QGraphicsSceneWheelEvent *wheelEvent =
      static_cast<QGraphicsSceneWheelEvent*>(event);
    if (wheelEvent->modifiers().testFlag(Qt::ControlModifier)) {
      int delta = wheelEvent->delta();
      qreal scale = 1.00;
      if (delta > 0) {
        scale = 1.10;
      } else {
        scale = 1/1.10;
      }
      emit sceneScaleChanged(scale);
      wheelEvent->accept();
      return true;
    }
  }

  return false;
}
Example #3
0
MainWindow::MainWindow(QWidget *parent, const QString &fileName)
  : QMainWindow(parent) {
  setupUi(this);

  _zoom = new QLabel();
  _zoom->setToolTip(QString("Zoom factor"));
  _zoom->setFrameStyle(QFrame::Sunken);
  _zoom->setAlignment(Qt::AlignHCenter);
  _zoom->setMaximumWidth(50);
  this->statusBar()->addPermanentWidget(_zoom, 1);

  setAcceptDrops(true);

  fileWatcher = 0;
  imageItem = 0;

  gViewResult->viewport()->setGeometry(QRect(0,0,0,0));
  imageScene = new Scene();
  connect(imageScene, SIGNAL(dropedFilename(QString)),
          this, SLOT(openImage(QString)));
  connect(imageScene, SIGNAL(sceneScaleChanged(qreal)),
          this, SLOT(changeSceneScale(qreal)));
  connect(imageScene, SIGNAL(rotateImage(int)),
          this, SLOT(rotate(int)));
  connect(imageScene, SIGNAL(imageInfoTriggered()), this, SLOT(imageInfo()));
  connect(imageScene, SIGNAL(detectOrientationSignal()), this,
          SLOT(on_actionDetectOrientation_triggered()));

  gViewResult->setScene(imageScene);
  gViewResult->setRenderHint(QPainter::Antialiasing);
  gViewResult->setCacheMode(QGraphicsView::CacheBackground);
  gViewResult->setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
  gViewResult->setOptimizationFlags(QGraphicsView::DontSavePainterState | QGraphicsView::DontAdjustForAntialiasing);
  gViewResult->viewport()->setSizeIncrement(gViewResult->sceneRect().width(),gViewResult->sceneRect().height());
  gViewResult->viewport()->setSizeIncrement(gViewResult->sceneRect().width(),gViewResult->sceneRect().height());

  connect(actionAbout, SIGNAL(triggered()), this, SLOT(about()));
  connect(actionAbout_Qt, SIGNAL(triggered()), this, SLOT(aboutQt()));

  for (int i = 0; i < MaxRecentFiles; ++i) {
    recentFileActs[i] = new QAction(this);
    recentFileActs[i]->setVisible(false);
    connect(recentFileActs[i], SIGNAL(triggered()),
            this, SLOT(openRecentFile()));
  }

  fSeparatorAct = menuFile->addSeparator();
  for (int i = 0; i < MaxRecentFiles; ++i)
    menuFile->addAction(recentFileActs[i]);
  updateRecentFileActions();

  readSettings(true);
  if (fileName.isEmpty()) {
    // Open last file on init if there was no argument
    recentFile = recentFileActs[0]->data().toString();
  } else {
    recentFile = fileName;
    setZoom(1.0);
  }
  if (!recentFile.isEmpty())
    openImage(recentFile);

  // default values for Clean Dark Background
  blackval = 70;
  whiteval = 180;
  thresh = 60;
}