mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-42872 (better support for Gnome clipboard format)
This commit is contained in:
@@ -69,17 +69,21 @@ public class FileCopyPasteUtil {
|
||||
|
||||
public static boolean isFileListFlavorSupported(@NotNull final Transferable transferable) {
|
||||
return transferable.isDataFlavorSupported(DataFlavor.javaFileListFlavor) ||
|
||||
transferable.isDataFlavorSupported(LinuxDragAndDropSupport.uriListFlavor);
|
||||
transferable.isDataFlavorSupported(LinuxDragAndDropSupport.uriListFlavor) ||
|
||||
transferable.isDataFlavorSupported(LinuxDragAndDropSupport.gnomeFileListFlavor);
|
||||
}
|
||||
|
||||
public static boolean isFileListFlavorSupported(@NotNull final DnDEvent event) {
|
||||
return event.isDataFlavorSupported(DataFlavor.javaFileListFlavor) ||
|
||||
event.isDataFlavorSupported(LinuxDragAndDropSupport.uriListFlavor);
|
||||
event.isDataFlavorSupported(LinuxDragAndDropSupport.uriListFlavor) ||
|
||||
event.isDataFlavorSupported(LinuxDragAndDropSupport.gnomeFileListFlavor);
|
||||
}
|
||||
|
||||
public static boolean isFileListFlavorSupported(@NotNull final DataFlavor[] transferFlavors) {
|
||||
for (DataFlavor flavor : transferFlavors) {
|
||||
if (flavor.equals(DataFlavor.javaFileListFlavor) || flavor.equals(LinuxDragAndDropSupport.uriListFlavor)) {
|
||||
if (flavor != null && (flavor.equals(DataFlavor.javaFileListFlavor) ||
|
||||
flavor.equals(LinuxDragAndDropSupport.uriListFlavor) ||
|
||||
flavor.equals(LinuxDragAndDropSupport.gnomeFileListFlavor))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -94,7 +98,7 @@ public class FileCopyPasteUtil {
|
||||
final List<File> fileList = (List<File>)transferable.getTransferData(DataFlavor.javaFileListFlavor);
|
||||
return fileList;
|
||||
}
|
||||
else if (transferable.isDataFlavorSupported(LinuxDragAndDropSupport.uriListFlavor)) {
|
||||
else {
|
||||
return LinuxDragAndDropSupport.getFiles(transferable);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,10 +45,19 @@ public class LinuxDragAndDropSupport {
|
||||
|
||||
private LinuxDragAndDropSupport() { }
|
||||
|
||||
@NotNull
|
||||
@Nullable
|
||||
public static List<File> getFiles(@NotNull final Transferable transferable) throws IOException, UnsupportedFlavorException {
|
||||
final Object transferData = transferable.getTransferData(uriListFlavor);
|
||||
return getFiles(transferData.toString());
|
||||
if (transferable.isDataFlavorSupported(uriListFlavor)) {
|
||||
final Object transferData = transferable.getTransferData(uriListFlavor);
|
||||
return getFiles(transferData.toString());
|
||||
}
|
||||
else if (transferable.isDataFlavorSupported(gnomeFileListFlavor)) {
|
||||
final Object transferData = transferable.getTransferData(gnomeFileListFlavor);
|
||||
final String content = FileUtil.loadTextAndClose((InputStream)transferData);
|
||||
return getFiles(content);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user