diff --git a/scripts/drag_drop_handler.lua b/scripts/drag_drop_handler.lua index b972971e8e..37937394b5 100644 --- a/scripts/drag_drop_handler.lua +++ b/scripts/drag_drop_handler.lua @@ -22,13 +22,31 @@ filename = filename:gsub("\\", "/") basename = basename:gsub("\\", "/") basename_without_extension = basename:sub(0, #basename - extension:len()) -is_image_file = function(extension) +local is_image_file = function(extension) return extension == ".png" or extension == ".jpg" or extension == ".jpeg" or extension == ".tif" or extension == ".tga" or extension == ".bmp" or extension == ".psd" or extension == ".gif" or extension == ".hdr" or extension == ".pic" or extension == ".pnm" end +local is_video_file = function(extension) + return extension == ".mp4" or extension == ".webm" or extension == ".mkv" or + extension == ".avi" or extension == ".mov" or extension == ".wmv" or + extension == ".mpg" or extension == ".m4v" +end + +local is_asset_file = function(extension) + return extension == ".asset" +end + +local is_recording_file = function(extension) + return extension == ".osrec" or extension == ".osrectxt" +end + +local is_geojson_file = function(extension) + return extension == ".geojson" +end + local ReloadUIScript = [[ if openspace.hasProperty('Modules.CefWebGui.Reload') then openspace.setPropertyValue('Modules.CefWebGui.Reload', nil) end ]] if is_image_file(extension) then @@ -38,14 +56,21 @@ if is_image_file(extension) then Type = "ScreenSpaceImageLocal", TexturePath = "]] .. filename .. [[" });]] .. ReloadUIScript -elseif extension == ".asset" then +elseif is_video_file(extension) then + return [[ + openspace.addScreenSpaceRenderable({ + Identifier = openspace.makeIdentifier("]] .. basename_without_extension .. [["), + Type = "ScreenSpaceVideo", + Video = "]] .. filename .. [[" + });]] .. ReloadUIScript +elseif is_asset_file(extension) then return [[ if openspace.asset.isLoaded("]] .. filename .. [[") ~= true then openspace.printInfo("Adding asset: ']] .. filename .. [[' (drag-and-drop)"); end openspace.asset.add("]] .. filename .. '");' .. ReloadUIScript -elseif extension == ".osrec" or extension == ".osrectxt" then +elseif is_recording_file(extension) then return 'openspace.sessionRecording.startPlayback("' .. filename .. '")' -elseif extension == ".geojson" then +elseif is_geojson_file(extension) then return 'openspace.globebrowsing.addGeoJsonFromFile("' .. filename .. '")' .. ReloadUIScript end