mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-11 01:32:08 +10:00
Fixed the issue with opening DIY files on Mac OS - updated the logic to use java.desktop
This commit is contained in:
@@ -143,14 +143,10 @@ public class Presenter implements IPlugInPort, IConfigListener {
|
||||
List<Version> allVersions = (List<Version>) 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<Version>() {
|
||||
|
||||
@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) {
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
<java.util.Arrays_-ArrayList>
|
||||
<a class="org.diylc.appframework.update.Version-array">
|
||||
<org.diylc.appframework.update.Version>
|
||||
<versionNumber>
|
||||
<major>5</major>
|
||||
<minor>0</minor>
|
||||
<build>0</build>
|
||||
</versionNumber>
|
||||
<releaseDate>2025-03-08 00:00:00.000 CET</releaseDate>
|
||||
<name></name>
|
||||
<changes>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>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.</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>IMPROVEMENT</changeType>
|
||||
<description>Upgraded Windows installer version and Windows EXE launcher version</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>BUG_FIX</changeType>
|
||||
<description>Fixed alignment issues of round elements (e.g. solder pads and holes) in exported Gerber files</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>BUG_FIX</changeType>
|
||||
<description>Fixed the issue with opening DIY files on Mac OS</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
</changes>
|
||||
<url>https://github.com/bancika/diy-layout-creator/releases</url>
|
||||
</org.diylc.appframework.update.Version>
|
||||
<org.diylc.appframework.update.Version>
|
||||
<versionNumber>
|
||||
<major>4</major>
|
||||
@@ -212,29 +240,5 @@
|
||||
</changes>
|
||||
<url>https://github.com/bancika/diy-layout-creator/releases</url>
|
||||
</org.diylc.appframework.update.Version>>
|
||||
<org.diylc.appframework.update.Version>
|
||||
<versionNumber>
|
||||
<major>5</major>
|
||||
<minor>0</minor>
|
||||
<build>0</build>
|
||||
</versionNumber>
|
||||
<releaseDate>2025-03-08 00:00:00.000 CET</releaseDate>
|
||||
<name></name>
|
||||
<changes>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>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.</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>IMPROVEMENT</changeType>
|
||||
<description>Upgraded Windows installer version and Windows EXE launcher version</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>BUG_FIX</changeType>
|
||||
<description>Fixed alignment issues of round elements (e.g. solder pads and holes) in exported Gerber files</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
</changes>
|
||||
<url>https://github.com/bancika/diy-layout-creator/releases</url>
|
||||
</org.diylc.appframework.update.Version>
|
||||
</a>
|
||||
</java.util.Arrays_-ArrayList>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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<File> 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));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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<File> 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.");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user