Exemple #1
0
void Scene::dropEvent(QGraphicsSceneDragDropEvent * event) {
  QList<QUrl> urls = event->mimeData()->urls();
  if (urls.count()) {
    QString filename = urls[0].toLocalFile();
    emit dropedFilename(filename);
    event->acceptProposedAction();
  }
}
Exemple #2
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;
}