Permlink Replies: 14 - Pages: 1 - Last Post: 17 Jun 25, 15:34 Last Post By: davidekholm Threads: [ Previous | Next ]
davidekholm

Posts: 3,693
Registered: 18-Oct-2002
jAlbum 37.6 beta for testing
Posted: 5 Jun 25, 09:40
  Click to reply to this thread Reply
v37.6 is just around the corner now. Here's what I believe is a stable beta:
Changes:
  • Keyboard shortcuts are now far more configurable. Edit system/shortcuts/shortcuts.properties or config/shortcuts.properties
  • The image tools of Edit mode now have configurable keyboard shortcuts
  • Edit mode now has its own menu bars, freeing up many convenient keyboard shortcuts stolen by Explore mode specific actions
  • Keyboard shortcuts can now be saved to jAlbum's config folder, enabling customised shortcuts to survive updates
  • Continuing dragging an object while Peek is active will cancel Peek and instead continue the drag operation
  • Dropping a folder onto itself will cancel drop instead of showing an error
  • New "Import pre v16 projects" external tool
  • "Add - From Database file" now recognises JSON files as well as xml and CSV files
  • Fix: One couldn't drag and drop until one had activated Peek (since 37.5, fixed in 37.5.6)
  • Fix: Incorrect image sizes will no longer cause errors (reverts to last ok size)
  • Fixed incorrect icon colors in Mac menus with some dark UI combination
  • Fixed incorrect language for undo/redo
  • Fix: Rotating and excluding groups of images now properly reports to undo manager
  • Fix: Moving groups of images to folder tree is now gathered in one undo/redo group
  • Fixed some issues running jAlbum in headless mode (no screen present)
  • Reworked action wiring for cleaner code and to enable more configurable keyboard shortcuts
  • Developers: Added IO.move API

I had to do quite a bit of code refactoring to enable configurable keyboard shortcuts for most actions. This has resulted in 120 lines less code and far cleaner code, but with so much refactoring, rewiring the binding between so many menus and actions, I might have broken something. I have done testing, but you know how it is when a developer tests, so please test as well.

On keyboard shortcuts: It has been requested multiple times that jAlbum's image tools should receive keyboard shortcuts. Now they have shortcuts like ctrl+alt+c for crop, ctrl+alt+g for gamma, ctrl+alt+l to rotate left, ctrl+alt+r to rotate right etc. As Mac computers use the cmd key for shortcuts by default, users can freely bind custom shortcuts to the ctrl key without avoiding clashes with other actions. Here are proposed shorter shortcuts for common actions on Mac (edit system/shortcuts/shortcuts.properties or config/shortcuts.properties):
edit.rotateLeft=ctrl L
edit.rotateRight=ctrl R
edit.flipCamera=ctrl F
CroppingFilter=ctrl C
StraightenFilter=ctrl S
AutoCorrection=ctrl A
GammaFilter=ctrl G


On translations: I've only added two new texts here, relying on Google Translate. If you find the machine translation bad, please provide a better translation.

Installers:
Windows: https://jalbum.net/download/jAlbum-install.exe
Mac (Intel): https://jalbum.net/download/jAlbum.dmg
Mac (M-series): https://jalbum.net/download/jAlbum-M.dmg
Linux (Debian): https://jalbum.net/download/jalbum_37.6-1_amd64.deb
RobM

Posts: 4,017
Registered: 4-Aug-2006
Re: jAlbum 37.6 beta for testing
Posted: 5 Jun 25, 20:48   in response to: davidekholm in response to: davidekholm
  Click to reply to this thread Reply
To make it easier to edit keyboard shortcuts within jAlbum, could a menu option, under tools, be added - like for the Translator menu?
RobM

Posts: 4,017
Registered: 4-Aug-2006
Re: jAlbum 37.6 beta for testing
Posted: 5 Jun 25, 21:08   in response to: davidekholm in response to: davidekholm
  Click to reply to this thread Reply
I tried using
StraightenFilter=ctrl S
in the config>system>shortcuts>shortcuts.properties file but nothing happens, it does not invoke the straighten filter. I tried restarting jAlbum, which I assume is required to make the change effective. Checking the image tools menu I see the keyboard shortcut for straighten is OPT+CMD+S

Edited by: RobM on 5 Jun 2025, 20:13
Tried editing the apps properties file and the menu shows no keyboard shortcut. The default of OPT+CMD+S is used by Boom 3D audio app, which ties into the system sound and that is activated.
davidekholm

Posts: 3,693
Registered: 18-Oct-2002
Re: jAlbum 37.6 beta for testing
Posted: 6 Jun 25, 00:31   in response to: RobM in response to: RobM
  Click to reply to this thread Reply
Rob, just put shortcuts.properties straight under config.

(Is that bad design? I can mirror it so you have to put it under config/system/shortcuts as well)
RobM

Posts: 4,017
Registered: 4-Aug-2006
Re: jAlbum 37.6 beta for testing
Posted: 6 Jun 25, 10:06   in response to: davidekholm in response to: davidekholm
  Click to reply to this thread Reply
davidekholm wrote:
Rob, just put shortcuts.properties straight under config.

(Is that bad design? I can mirror it so you have to put it under config/system/shortcuts as well)

Odd, just checked the folder/file dates of the shortcuts folder/files in the configuration > system folder and they are all dated 19 July 2023 at 20:19.

I’d expect the location of the files to mirror that of the application’s internal location, under the configuration > system folder > shortcuts. The same as for themes and directories.

I moved the shortcuts.properties file under the configuration directory and the modified shortcuts were applied, however the other default shortcuts were removed. So the configuration version overwrites all image tools menu shortcuts.

By the way, there is no undo option for rotate left or right.
davidekholm

Posts: 3,693
Registered: 18-Oct-2002
Re: jAlbum 37.6 beta for testing
Posted: 6 Jun 25, 14:28   in response to: RobM in response to: RobM
  Click to reply to this thread Reply
RobM wrote:

Odd, just checked the folder/file dates of the shortcuts folder/files in the configuration > system folder and they are all dated 19 July 2023 at 20:19.

I assume you mean <app folder>/system/shortcuts folder? The new shortcuts.properties file should be from June 2025. If not, what OS did you test on?

I’d expect the location of the files to mirror that of the application’s internal location, under the configuration > system folder > shortcuts. The same as for themes and directories.

It's more symmetrical to use the same folder structure under config, so I'll change to that.

I moved the shortcuts.properties file under the configuration directory and the modified shortcuts were applied, however the other default shortcuts were removed. So the configuration version overwrites all image tools menu shortcuts.

Yes, there is no fallback to the main shortcuts file now, but the core code has internal defaults for shortcuts as well, so you shouldn't need to put much into your own shortcuts.properties really. What are you seeking to customize?

I know, you'll only see undo for left/right if you move back to Explore view. The Explore view and Edit view have separate undo/redo queues for historical reasons. It has a few benefits, but I admit it's confusing in this case.
davidekholm

Posts: 3,693
Registered: 18-Oct-2002
Re: jAlbum 37.6 beta for testing
Posted: 6 Jun 25, 14:30   in response to: davidekholm in response to: davidekholm
  Click to reply to this thread Reply
New core file available at https://jalbum.net/download/beta/jalbum-core.jar (using config/system/shortcuts/shortcuts.properties now)
RobM

Posts: 4,017
Registered: 4-Aug-2006
Re: jAlbum 37.6 beta for testing
Posted: 6 Jun 25, 14:49   in response to: davidekholm in response to: davidekholm
  Click to reply to this thread Reply
davidekholm wrote:
RobM wrote:

Odd, just checked the folder/file dates of the shortcuts folder/files in the configuration > system folder and they are all dated 19 July 2023 at 20:19.

I assume you mean <app folder>/system/shortcuts folder? The new shortcuts.properties file should be from June 2025. If not, what OS did you test on?

No it was the in the configuration folder. But I now know why it was there, https://jalbum.net/blog/entry/presenting-jalbum-32/
I obviously tried adding the folder to the configuration directory at that point, to see if it was possible to make the changes survive an update. That’s why there was a Polish translation file in the folder. I just forgot about it, sorry.
I’d expect the location of the files to mirror that of the application’s internal location, under the configuration > system folder > shortcuts. The same as for themes and directories.

It's more symmetrical to use the same folder structure under config, so I'll change to that.

Thanks, that makes my mistake above sound more prescient :)
I moved the shortcuts.properties file under the configuration directory and the modified shortcuts were applied, however the other default shortcuts were removed. So the configuration version overwrites all image tools menu shortcuts.

Yes, there is no fallback to the main shortcuts file now, but the core code has internal defaults for shortcuts as well, so you shouldn't need to put much into your own shortcuts.properties really. What are you seeking to customize?

Not a problem in general as from my testing it only affects the image tools menu shortcuts. I’ll add a note to the wiki when I update it.
I know, you'll only see undo for left/right if you move back to Explore view. The Explore view and Edit view have separate undo/redo queues for historical reasons. It has a few benefits, but I admit it's confusing in this case.
Never noticed it before, that’s what comes of testing things, I find oddball stuff related to things I rarely use. Another update for the wiki.
RobM

Posts: 4,017
Registered: 4-Aug-2006
Re: jAlbum 37.6 beta for testing
Posted: 8 Jun 25, 17:09   in response to: davidekholm in response to: davidekholm
  Click to reply to this thread Reply
I'm getting random errors on drag and drop
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "se.datadosen.explorer.JExplorerPanel.getDraggedObjects()" is null
	at se.datadosen.explorer.JExplorerPanel.dragOver(JExplorerPanel.java:620)
	at java.desktop/java.awt.dnd.DropTarget.dragOver(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.lwawt.macosx.CDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchMotionEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetEvent.dispatch(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processDropTargetEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "se.datadosen.explorer.JExplorerPanel.getDraggedObjects()" is null
	at se.datadosen.explorer.JExplorerPanel.dragOver(JExplorerPanel.java:620)
	at java.desktop/java.awt.dnd.DropTarget.dragOver(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.lwawt.macosx.CDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchMotionEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetEvent.dispatch(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processDropTargetEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "se.datadosen.explorer.JExplorerPanel.getDraggedObjects()" is null
	at se.datadosen.explorer.JExplorerPanel.dragOver(JExplorerPanel.java:620)
	at java.desktop/java.awt.dnd.DropTarget.dragOver(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.lwawt.macosx.CDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchMotionEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetEvent.dispatch(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processDropTargetEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "se.datadosen.explorer.JExplorerPanel.getDraggedObjects()" is null
	at se.datadosen.explorer.JExplorerPanel.dragOver(JExplorerPanel.java:620)
	at java.desktop/java.awt.dnd.DropTarget.dragOver(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.lwawt.macosx.CDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchMotionEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetEvent.dispatch(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processDropTargetEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "se.datadosen.explorer.JExplorerPanel.getDraggedObjects()" is null
	at se.datadosen.explorer.JExplorerPanel.dragOver(JExplorerPanel.java:620)
	at java.desktop/java.awt.dnd.DropTarget.dragOver(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.lwawt.macosx.CDropTargetContextPeer.processMotionMessage(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchMotionEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/sun.awt.dnd.SunDropTargetEvent.dispatch(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processDropTargetEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return 
davidekholm

Posts: 3,693
Registered: 18-Oct-2002
Re: jAlbum 37.6 beta for testing
Posted: 8 Jun 25, 22:24   in response to: RobM in response to: RobM
  Click to reply to this thread Reply
@Rob, that's odd.
What OS?
Can you reproduce it every time?
Is it project specific?
RobM

Posts: 4,017
Registered: 4-Aug-2006
Re: jAlbum 37.6 beta for testing
Posted: 8 Jun 25, 23:32   in response to: davidekholm in response to: davidekholm
  Click to reply to this thread Reply
Attachment Error.mp4 (484.7 KB)
davidekholm wrote:
@Rob, that's odd.
What OS?
Can you reproduce it every time?
Is it project specific?
Mac Sequoia 15.5 (24F74) M2
No, different projects with different skins and different files used.
I have jAlbum set to ask if to link or copy and the error happens just before that popup appears

Try the Welcome to jAlbum project with Tiger or Minimal. Video of error attached, error happens as soon as dragged object is over the explore view.
JeffTucker

Posts: 8,014
Registered: 31-Jan-2006
Re: jAlbum 37.6 beta for testing
Posted: 9 Jun 25, 00:41   in response to: RobM in response to: RobM
  Click to reply to this thread Reply
I don't get that error in Windows. In macOS, I get the same error, but only if Ask is chosen, and only with some skins. Tiger produces the error, Neptune does not. This, of course, violates everything I thought I understood about the Explore view. ;)
davidekholm

Posts: 3,693
Registered: 18-Oct-2002
Re: jAlbum 37.6 beta for testing
Posted: 10 Jun 25, 12:59   in response to: JeffTucker in response to: JeffTucker
  Click to reply to this thread Reply
Thanks for reporting. Now reproduced and fixed: https://jalbum.net/download/beta/jalbum-core.jar
RobM

Posts: 4,017
Registered: 4-Aug-2006
Re: jAlbum 37.6 beta for testing
Posted: 10 Jun 25, 19:45   in response to: davidekholm in response to: davidekholm
  Click to reply to this thread Reply
davidekholm wrote:
Thanks for reporting. Now reproduced and fixed: https://jalbum.net/download/beta/jalbum-core.jar
Thanks, back to normal now.
davidekholm

Posts: 3,693
Registered: 18-Oct-2002
Re: jAlbum 37.6 beta for testing
Posted: 17 Jun 25, 15:34   in response to: RobM in response to: RobM
  Click to reply to this thread Reply
Legend
Forum admins
Helpful Answer
Correct Answer

Point your RSS reader here for a feed of the latest messages in all forums