/* * Aktionen, die ausgeführt werden müssen, wenn der 'zurück'-Knopf gedrückt wurde. */ void ProtoWindow::on_backPushButton_clicked() { // Daten des "alten" Bildes müssen gespeichert werden. save(); /* * Textdatei erstellen, falls nicht vorhanden. * * Daten in Textdatei schreiben. Dabei werden die alten Daten für dieses Bild überschrieben. * Die Daten werden in der folgenden Reihenfolge gespeichert: * "&"Dateiname(mit Endung)$bildbeschreibung"$"x-Koordinate"%"y-Koordinate"%"Text"$"nächstes Quadrat..."&" * * Bis auf Weiteres wird der gesamte Inhalt der Datei neu gespeichert. */ // current-Counter eins runterzaehlen, damit das naechste Bild angezeigt wird if (this->currentIndex-1 < 0) { this->currentIndex = this->dirVec.size()-1; } else { this->currentIndex = (this->currentIndex-1) % (this->dirVec.size()); } QString fileName = this->dirVec[currentIndex]; showNextImage((this->curDir.absoluteFilePath(fileName))); scaleImage(fittingSize("on_backPushButton_clicked")); updateUI(); }
/* * Öffnet eine Bild-Datei und zeigt sie an (über Menü-Punkt) */ void ProtoWindow::open() { // Öffnen-Dialog; Dateiname der zu öffnenden Datei wird in fileName gespeichert. const QString caption = trUtf8("Datei öffnen"); const QString filter = trUtf8("Bilder (*.jpeg *.jpg *.JPG *.JPEG *.png)"); QString fileName = QFileDialog::getOpenFileName(&(*(ui->centralWidget)), caption, QDir::homePath(), filter); if (fileName.isEmpty()) { // bedeutet, dass der Nutzer "Abbrechen" gedrückt hat return; } //wird gebraucht, um Pfad extrahieren zu können QFileInfo info(fileName); /* * Die geöffnete Datei liegt in einem neuen Ordner, daher muss alles * in Verbindung mit der Ordnerstruktur neu aufgebaut werden. */ if (info.absoluteDir() != this->curDir || this->dirVec.empty()) { onNewFolder(info.absoluteDir()); } if (showNextImage(fileName)) { setCurrentIndex(info.absoluteFilePath()); //scaleImage(fittingSize("on_backPushButton_clicked")); updateUI(); } }
//! Construtor TerraMEPlayerDialog::TerraMEPlayerDialog(Services* manager, QWidget* parent, Qt::WFlags f) : QDialog(parent, f) { setupUi(this); _manager = manager; _currentAnalysisImageIndex = 0; _imageCountLabel->setText(""); _imageFileFilter.append("terrama2_*.png"); //Este filtro deve ser igual ao usado para gerar as imagens das analises TerraME (ver AnalysisRule.cpp) _imageCountText = tr("Imagem: %1 / %2"); connect(_terraMEAnalysisListWidget, SIGNAL(currentRowChanged(int)), SLOT(analysisSelected(int))); connect(_datetimeListWidget, SIGNAL(currentRowChanged(int)), SLOT(datetimeSelected(int))); connect(_previousBtn, SIGNAL(clicked()), SLOT(showPreviousImage())); connect(_nextBtn, SIGNAL(clicked()), SLOT(showNextImage())); connect(_rewindBtn, SIGNAL(clicked()), SLOT(rewindClicked())); connect(_forwardBtn, SIGNAL(clicked()), SLOT(forwardClicked())); connect(_pauseBtn, SIGNAL(clicked()), SLOT(pauseClicked())); connect(&_changeResultTimer, SIGNAL(timeout()), this, SLOT(changeResultSlot())); _changeResultTimer.setSingleShot(false); reloadInterface(); }
PhotoStripView::PhotoStripView(PhotoStrip *controller) : MWidgetView(controller), controller(controller), viewport(new Viewport), mainLayout(new QGraphicsLinearLayout(Qt::Horizontal)), pannedWidget(new QGraphicsWidget), focusedWidget(-1), _isPositionChanged(false), isModelRowChanged(false), currentModel(0), mode(PhotoStripView::OnNormal) { /* controller initial setting */ controller->setContentsMargins(0, 0, 0, 0); controller->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); /* pannable viewport initial setting */ viewport->setObjectName("PhotoStripDetailsViewport"); viewport->setPanDirection(Qt::Horizontal); viewport->setContentsMargins(0, 0, 0, 0); viewport->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); viewport->setAutoRange(false); /* the layout of viewport initial setting */ mainLayout->setSpacing(0); mainLayout->setContentsMargins(0, 0, 0, 0); mainLayout->addItem(viewport); controller->setLayout(mainLayout); /* pannedWidget initial setting */ pannedWidget->setContentsMargins(0, 0, 0, 0); pannedWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); /* pannedLayout initial setting */ pannedLayout = new PhotoStripLayout(); pannedWidget->setLayout(pannedLayout); pannedLayout->setSpacing(ITEM_SPACING); pannedLayout->setContentsMargins(0, 0, 0, 0); connect(viewport, SIGNAL(sizePosChanged(const QSizeF &, const QRectF &, const QPointF &)), this, SLOT(sizePosChanged(const QSizeF &, const QRectF &, const QPointF &))); viewport->setWidget(pannedWidget); viewport->positionIndicator()->hide(); physics = new PhotoStripPhysics(this); connect(physics, SIGNAL(snapIndexChanged(int)), this, SLOT(snapIndexChanged(int))); viewport->setPhysics(physics); connect(viewport, SIGNAL(panningStopped()), this, SLOT(panningStopped())); timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(showNextImage())); timer->setInterval(SLIDESHOW_INTERVAL); connect(viewport, SIGNAL(mousePress()), this, SLOT(mousePress())); }
//! Slot chamado durante uma animacao. Atualiza a imagem que esta sendo exibida void TerraMEPlayerDialog::changeResultSlot() { if(_forward) showNextImage(); else showPreviousImage(); // Verificar se chegou ao inicio ou ao fim da lista de imagens a serem exibidas if( _currentAnalysisImageIndex == 0 || _currentAnalysisImageIndex == (_currentAnalysisResult.size() - 1) ) _changeResultTimer.stop(); }
void CImageAnimationUI::DoEvent( TEventUI& event ) { if( event.Type == UIEVENT_TIMER && event.wParam == PicMoveNxtTimerId) { OnImageMoveNxt(); } else if( event.Type == UIEVENT_TIMER && event.wParam == PicMovePreTimerId) { OnImageMovePre(); } else if(event.Type == UIEVENT_TIMER && event.wParam == AutoPicMoveNxtTimerId) { showNextImage(); } CControlUI::DoEvent(event); }
/* * wurde das Programm durch Doppelklick auf eine jp(e)g-Datei geöffnet, muss gleich dieses * Bild angezeigt werden. * * wird z.Zt. nicht weiter entwickelt */ void ProtoWindow::setFirstImage() { QString q = QString::fromStdString(this->argv[1]); setCurrentIndex(q); // Bild anzeigen QString fileName = (this->curDir.filePath(this->dirVec[this->currentIndex])); // Dateiname sollte nicht leer sein... if (showNextImage(fileName)) { ui->backPushButton->setEnabled(true); ui->forwardPushButton->setEnabled(true); ui->showPushButton->setEnabled(true); } }
/* * Aktionen, die ausgeführt werden müssen, wenn der 'vorwärts'-Knopf gedrückt wurde. */ void ProtoWindow::on_forwardPushButton_clicked() { // Daten des "alten" Bildes muessen gespeichert werden. save(); /* * Textdatei erstellen, falls nicht vorhanden. * s.o. */ // current-Counter eins hochzaehlen, damit das naechste Bild angezeigt wird this->currentIndex = (this->currentIndex+1) % (this->dirVec.size()); QString fileName = this->dirVec[currentIndex]; if (showNextImage(this->curDir.absoluteFilePath(fileName))) { scaleImage(fittingSize("on_backPushButton_clicked")); updateUI(); } }