diff --git a/CHANGELOG.md b/CHANGELOG.md index 00fa75dbda7..577c529dc2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,7 +35,8 @@ to [sourceforge feature requests](https://sourceforge.net/p/jabref/features/) by - Integrity check now also checks broken file links, abbreviations in journal and booktitle, and incorrect use of proceedings with page numbers ### Fixed -- Fixed [#883](https://github.com/JabRef/jabref/issues/883): No NPE during cleanup +- Fixed [#598](https://github.com/JabRef/jabref/issues/598) and [#402](https://github.com/JabRef/jabref/issues/402): No more issues with invalid icons for ExternalFileTypes in global search or after editing the settings +- Fixed [#883](https://github.com/JabRef/jabref/issues/883): No NPE during cleanup - Fixed [#466](https://github.com/JabRef/jabref/issues/466): Rename PDF cleanup now also changes case of file name - Fixed [#621](https://github.com/JabRef/jabref/issues/621) and [#669](https://github.com/JabRef/jabref/issues/669): Encoding and preamble now end with newline. - Make BibTex parser more robust against missing newlines diff --git a/src/main/java/net/sf/jabref/external/ExternalFileType.java b/src/main/java/net/sf/jabref/external/ExternalFileType.java index 96b8b441cc6..77c79987d84 100644 --- a/src/main/java/net/sf/jabref/external/ExternalFileType.java +++ b/src/main/java/net/sf/jabref/external/ExternalFileType.java @@ -80,10 +80,15 @@ public static ExternalFileType buildFromArgs(String[] val) { iconName = val[4]; } - if ("new".equals(iconName)) { - icon = IconTheme.JabRefIcon.FILE.getSmallIcon(); - } else { - icon = IconTheme.getImage(iconName); + // set icon to default first + icon = IconTheme.JabRefIcon.FILE.getSmallIcon(); + + // check whether there is another icon defined for this file type + for(ExternalFileType fileType : ExternalFileTypes.getDefaultExternalFileTypes()) { + if(fileType.getName().equals(name)) { + icon = fileType.icon; + break; + } } return new ExternalFileType(name, extension, mimeType, openWith, iconName, icon); diff --git a/src/main/java/net/sf/jabref/external/ExternalFileTypeEditor.java b/src/main/java/net/sf/jabref/external/ExternalFileTypeEditor.java index 56912b53027..eda2273658a 100644 --- a/src/main/java/net/sf/jabref/external/ExternalFileTypeEditor.java +++ b/src/main/java/net/sf/jabref/external/ExternalFileTypeEditor.java @@ -110,7 +110,7 @@ public void actionPerformed(ActionEvent e) { Globals.lang("Reset file type definitions"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);*/ //if (reply == JOptionPane.YES_OPTION) { - List list = ExternalFileTypes.getInstance().getDefaultExternalFileTypes(); + List list = ExternalFileTypes.getDefaultExternalFileTypes(); fileTypes.clear(); fileTypes.addAll(list); Collections.sort(fileTypes); diff --git a/src/main/java/net/sf/jabref/external/ExternalFileTypes.java b/src/main/java/net/sf/jabref/external/ExternalFileTypes.java index b0b69b52ebd..89d72493676 100644 --- a/src/main/java/net/sf/jabref/external/ExternalFileTypes.java +++ b/src/main/java/net/sf/jabref/external/ExternalFileTypes.java @@ -40,7 +40,7 @@ private ExternalFileTypes() { updateExternalFileTypes(); } - public List getDefaultExternalFileTypes() { + public static List getDefaultExternalFileTypes() { List list = new ArrayList<>(); list.add(new ExternalFileType("PDF", "pdf", "application/pdf", "evince", "pdfSmall", IconTheme.JabRefIcon.PDF_FILE.getSmallIcon())); diff --git a/src/main/java/net/sf/jabref/external/UnknownExternalFileType.java b/src/main/java/net/sf/jabref/external/UnknownExternalFileType.java index 257b4c23af0..98da42715d4 100644 --- a/src/main/java/net/sf/jabref/external/UnknownExternalFileType.java +++ b/src/main/java/net/sf/jabref/external/UnknownExternalFileType.java @@ -25,7 +25,7 @@ public class UnknownExternalFileType extends ExternalFileType { public UnknownExternalFileType(String name) { - super(name, "", "", "", "unknown", IconTheme.getImage("unknown")); + super(name, "", "", "", "unknown", IconTheme.JabRefIcon.FILE.getSmallIcon()); } } diff --git a/src/main/java/net/sf/jabref/gui/maintable/SpecialMainTableColumns.java b/src/main/java/net/sf/jabref/gui/maintable/SpecialMainTableColumns.java index 91e4aa69dd4..c5f8ebf0f4d 100644 --- a/src/main/java/net/sf/jabref/gui/maintable/SpecialMainTableColumns.java +++ b/src/main/java/net/sf/jabref/gui/maintable/SpecialMainTableColumns.java @@ -104,6 +104,8 @@ public Object getColumnValue(BibEntry entry) { ExternalFileType type = fileList.getEntry(0).type; if (type != null) { return type.getIconLabel(); + } else { + return new JLabel(IconTheme.JabRefIcon.FILE.getSmallIcon()); } } diff --git a/src/main/java/net/sf/jabref/gui/search/SearchResultsDialog.java b/src/main/java/net/sf/jabref/gui/search/SearchResultsDialog.java index 14fbdf84496..0e10ce0b7de 100644 --- a/src/main/java/net/sf/jabref/gui/search/SearchResultsDialog.java +++ b/src/main/java/net/sf/jabref/gui/search/SearchResultsDialog.java @@ -462,7 +462,11 @@ public Object getColumnValue(BibEntry entry, int column) { tmpModel.setContent(entry.getField(Globals.FILE_FIELD)); fileLabel.setToolTipText(tmpModel.getToolTipHTMLRepresentation()); if (tmpModel.getRowCount() > 0) { - fileLabel.setIcon(tmpModel.getEntry(0).type.getIcon()); + if(tmpModel.getEntry(0).type!=null) { + fileLabel.setIcon(tmpModel.getEntry(0).type.getIcon()); + } else { + fileLabel.setIcon(IconTheme.JabRefIcon.FILE.getSmallIcon()); + } } return fileLabel; } else {