diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index 7e6786ad..7af5f64e 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -143,14 +143,10 @@ public class Presenter implements IPlugInPort, IConfigListener { List allVersions = (List) xStream.fromXML(in); CURRENT_VERSION = allVersions.get(allVersions.size() - 1).getVersionNumber(); LOG.info("Current DIYLC version: " + CURRENT_VERSION); - RECENT_VERSIONS = allVersions.subList(allVersions.size() - 10, allVersions.size()); - Collections.sort(RECENT_VERSIONS, new Comparator() { - - @Override - public int compare(Version o1, Version o2) { - return -o1.getVersionNumber().compareTo(o2.getVersionNumber()); - } - }); + RECENT_VERSIONS = allVersions.stream() + .sorted(Comparator.comparing(x -> ((Version)x).getVersionNumber()).reversed()) + .limit(10) + .collect(Collectors.toList()); in.close(); } } catch (Exception e) { diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index 6e9f28dd..c4586cc3 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -1,5 +1,33 @@ + + + 5 + 0 + 0 + + 2025-03-08 00:00:00.000 CET + + + + NEW_FEATURE + Switched to AppImage distribution for Linux system, abandoning Flatpak as a means of distribution. DIYLC AppImage will be available alongside with other executables on the official DIYLC GitHub page. + + + IMPROVEMENT + Upgraded Windows installer version and Windows EXE launcher version + + + BUG_FIX + Fixed alignment issues of round elements (e.g. solder pads and holes) in exported Gerber files + + + BUG_FIX + Fixed the issue with opening DIY files on Mac OS + + + https://github.com/bancika/diy-layout-creator/releases + 4 @@ -212,29 +240,5 @@ https://github.com/bancika/diy-layout-creator/releases > - - - 5 - 0 - 0 - - 2025-03-08 00:00:00.000 CET - - - - NEW_FEATURE - Switched to AppImage distribution for Linux system, abandoning Flatpak as a means of distribution. DIYLC AppImage will be available alongside with other executables on the official DIYLC GitHub page. - - - IMPROVEMENT - Upgraded Windows installer version and Windows EXE launcher version - - - BUG_FIX - Fixed alignment issues of round elements (e.g. solder pads and holes) in exported Gerber files - - - https://github.com/bancika/diy-layout-creator/releases - diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 5c7f51a1..d27309b5 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 5c7f51a1..d27309b5 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java b/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java index 492844df..6d3feef3 100644 --- a/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java +++ b/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java @@ -17,11 +17,11 @@ */ package org.diylc; +import java.awt.Desktop; import java.io.File; import java.lang.reflect.Field; import java.net.URL; import java.util.Arrays; -import java.util.List; import java.util.Properties; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; @@ -41,8 +41,6 @@ import org.diylc.swing.gui.TemplateDialog; import org.diylc.swing.plugins.file.ProjectDrawingProvider; import org.diylc.swingframework.export.DrawingExporter; import org.diylc.swingframework.fonts.FontOptimizer; -import com.apple.eawt.AppEvent; -import com.apple.eawt.Application; import com.thoughtworks.xstream.XStream; import ca.cgjennings.jvm.JarLoader; @@ -204,16 +202,8 @@ public class DIYLCStarter { if (Utils.isMac()) { LOG.info("Setting up open file handler for Mac..."); SwingUtilities.invokeLater(() -> { - Application.getApplication().setOpenFileHandler((AppEvent.OpenFilesEvent ofe) -> { - List files = ofe.getFiles(); - if (files != null && files.size() > 0) { - String filePath = files.get(0).getAbsolutePath(); - if (presenter.allowFileAction()) { - presenter.loadProjectFromFile(filePath); - } - } - LOG.info("Finished setting up open file handler for Mac."); - }); + // On macOS this function is called when a new file is opened. + Desktop.getDesktop().setOpenFileHandler(new OpenDIYFilesHandler(presenter)); }); } diff --git a/diylc/diylc-swing/src/org/diylc/OpenDIYFilesHandler.java b/diylc/diylc-swing/src/org/diylc/OpenDIYFilesHandler.java new file mode 100644 index 00000000..0695b640 --- /dev/null +++ b/diylc/diylc-swing/src/org/diylc/OpenDIYFilesHandler.java @@ -0,0 +1,35 @@ +package org.diylc; + +import java.awt.desktop.OpenFilesEvent; +import java.awt.desktop.OpenFilesHandler; +import java.io.File; +import java.util.List; + +import org.apache.log4j.Logger; +import org.diylc.common.IPlugInPort; + +public class OpenDIYFilesHandler implements OpenFilesHandler { + + private static final Logger LOG = Logger.getLogger(DIYLCStarter.class); + + private final IPlugInPort presenter; + + public OpenDIYFilesHandler(IPlugInPort presenter) { + super(); + this.presenter = presenter; + } + + @Override + public void openFiles(OpenFilesEvent e) { + + List files = e.getFiles(); + if (files != null && files.size() > 0) { + String filePath = files.get(0).getAbsolutePath(); + if (presenter.allowFileAction()) { + presenter.loadProjectFromFile(filePath); + } + } + LOG.info("Finished setting up open file handler for Mac."); + } + +}