diff --git a/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java b/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java index 3035981..c223094 100644 --- a/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java +++ b/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java @@ -1377,10 +1377,16 @@ public class FilePanelTab extends JPanel { String command = null; for (cz.kamma.kfmanager.config.AppConfig.OpenWithEntry entry : owEntries) { - if (entry.type != null && entry.type.equalsIgnoreCase(ext)) { - command = entry.command; - break; // Use the first matching entry + if (entry.type != null) { + String[] types = entry.type.split("[,;]"); + for (String t : types) { + if (t.trim().equalsIgnoreCase(ext)) { + command = entry.command; + break; + } + } } + if (command != null) break; // Use the first matching entry } if (command != null && !command.trim().isEmpty()) { @@ -1570,8 +1576,14 @@ public class FilePanelTab extends JPanel { java.util.List filtered = new java.util.ArrayList<>(); for (AppConfig.OpenWithEntry e : owEntries) { - if (e.type != null && e.type.equalsIgnoreCase(itemType)) { - filtered.add(e); + if (e.type != null) { + String[] types = e.type.split("[,;]"); + for (String t : types) { + if (t.trim().equalsIgnoreCase(itemType)) { + filtered.add(e); + break; + } + } } } diff --git a/src/main/java/cz/kamma/kfmanager/ui/SettingsDialog.java b/src/main/java/cz/kamma/kfmanager/ui/SettingsDialog.java index aac60cb..d56cbf4 100644 --- a/src/main/java/cz/kamma/kfmanager/ui/SettingsDialog.java +++ b/src/main/java/cz/kamma/kfmanager/ui/SettingsDialog.java @@ -648,6 +648,7 @@ public class SettingsDialog extends JDialog { p.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12)); JLabel hint = new JLabel("Use directory or extension (e.g. txt) for Type.
" + + "Multiple extensions can be separated by , or ; (e.g. mp4;mkv).
" + "Use %f for full path, %n for filename. " + "If no placeholder is used, path is appended to the end."); p.add(hint, BorderLayout.NORTH);