diff --git a/PhotoSlide/src/main/java/org/photoslide/MainViewController.java b/PhotoSlide/src/main/java/org/photoslide/MainViewController.java index 09d0853..1d4aca0 100644 --- a/PhotoSlide/src/main/java/org/photoslide/MainViewController.java +++ b/PhotoSlide/src/main/java/org/photoslide/MainViewController.java @@ -432,7 +432,7 @@ protected Boolean call() throws Exception { //sort if (diag.getController().getSortComboBox().getSelectionModel().getSelectedItem().equalsIgnoreCase("Record time based")) { AtomicInteger iatom = new AtomicInteger(1); - for (MediaFile mediaFile : exportList) { + exportList.parallelStream().forEach((mediaFile) -> { updateMessage("Export: Read record time " + iatom.get() + "/" + exportList.size()); try { if (mediaFile.getRecordTime() == null) { @@ -452,7 +452,7 @@ protected Boolean call() throws Exception { mediaFile.setRecordTime(triggerTime); } iatom.addAndGet(1); - } + }); exportList.sort(Comparator.comparing(MediaFile::getRecordTime)); } //end sort @@ -460,7 +460,7 @@ protected Boolean call() throws Exception { for (MediaFile mediaItem : exportList) { if (this.isCancelled() == false) { updateProgress(i + 1, exportList.size()); - updateMessage("" + (i + 1) + "/" + exportList.size()); + updateMessage("Exporting " + (i + 1) + "/" + exportList.size()); try { String fileFormat = diag.getController().getFileFormat(); ImageType imageType = ImageType.JPG; @@ -490,7 +490,7 @@ protected Boolean call() throws Exception { } } String url = mediaItem.getImageUrl().toString(); - Image img = new Image(url, false); + Image img = new Image(url, false); ObservableList filterList = mediaItem.getFilterListWithoutImageData(); Image imageWithFilters = img; for (ImageFilter imageFilter : filterList) { @@ -500,7 +500,7 @@ protected Boolean call() throws Exception { img = imageWithFilters; PixelReader reader = img.getPixelReader(); BufferedImage fromFXImage; - WritableImage newImage; + WritableImage newImage; if (mediaItem.getCropView() != null && mediaItem.getCropView().getHeight() > 0.0) { newImage = new WritableImage(reader, (int) (mediaItem.getCropView().getMinX()), (int) (mediaItem.getCropView().getMinY()), (int) (mediaItem.getCropView().getWidth()), (int) (mediaItem.getCropView().getHeight())); } else { @@ -565,17 +565,23 @@ protected Boolean call() throws Exception { if (diag.getController().getExportBasicMetadataBox().isSelected()) { metadataPaneController.readBasicMetadata(this, mediaItem); if (diag.getController().getReplaceTitleBox().isSelected()) { - mediaItem.setTitle(diag.getController().getTitle()); + Platform.runLater(() -> { + mediaItem.setTitle(diag.getController().getTitle()); + }); } if (diag.getController().getReplaceKeywordChoiceBox().isSelected()) { - mediaItem.setKeywords(diag.getController().getKeywordsAsString()); + Platform.runLater(() -> { + mediaItem.setKeywords(diag.getController().getKeywordsAsString()); + }); } if (!diag.getController().getHeightTextField().getText().equalsIgnoreCase("")) { mediaItem.setGpsHeight(Double.parseDouble(diag.getController().getHeightTextField().getText())); } if (diag.getController().getReplaceGPSCheckBox().isSelected()) { mediaItem.setGpsPositionFromDegree(diag.getController().getSelectedGPSPos()); - mediaItem.placeProperty().setValue(diag.getController().getFoundPlaceName()); + Platform.runLater(() -> { + mediaItem.placeProperty().setValue(diag.getController().getFoundPlaceName()); + }); } metadataPaneController.exportBasicMetadata(mediaItem, outFileStr, diag.getController().getReplaceGPSCheckBox().isSelected()); } diff --git a/PhotoSlide/src/main/java/org/photoslide/browserlighttable/LighttableController.java b/PhotoSlide/src/main/java/org/photoslide/browserlighttable/LighttableController.java index 4864672..ebf3f15 100644 --- a/PhotoSlide/src/main/java/org/photoslide/browserlighttable/LighttableController.java +++ b/PhotoSlide/src/main/java/org/photoslide/browserlighttable/LighttableController.java @@ -951,7 +951,7 @@ private void selectSortOrderAction(ActionEvent event) { @Override protected Boolean call() throws IOException { AtomicInteger i = new AtomicInteger(1); - fullMediaList.forEach((mediaFile) -> { + fullMediaList.parallelStream().forEach((mediaFile) -> { if (this.isCancelled() == false) { updateProgress(i.get(), fullMediaList.size()); updateMessage("Read record time " + i.get() + "/" + fullMediaList.size()); @@ -966,7 +966,7 @@ protected Boolean call() throws IOException { = LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), TimeZone.getDefault().toZoneId()); mediaFile.setRecordTime(triggerTime); } - if (mediaFile.getRecordTime() == null) { + if (mediaFile.getRecordTime() == null) { long test_timestamp = mediaFile.getPathStorage().toFile().lastModified(); LocalDateTime triggerTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), TimeZone.getDefault().toZoneId()); @@ -980,7 +980,7 @@ protected Boolean call() throws IOException { }; taskMeta.setOnSucceeded((t) -> { try { - sortedMediaList.sort(Comparator.comparing(MediaFile::getRecordTime)); + sortedMediaList.setComparator(Comparator.comparing(MediaFile::getRecordTime)); } catch (NullPointerException e) { sortOrderComboBox.getSelectionModel().clearSelection(0); }