API ReferenceGE Extensionseditor
File Dialog
Editor file dialog providing Open/Save functionality with directory browsing, file preview, favourites, smart search, column customization, and recent directories.
Editor file dialog providing Open/Save functionality with directory browsing, file preview, favourites, smart search, column customization, and recent directories.
Overview
editor_fileDialog implements a full-featured file browser dialog for the editor. It supports opening and saving files with suffix filtering, image previews (JPG/PNG/DDS), directory navigation, favourites bookmarking, recent directories dropdown, new folder creation, smart filename search, and configurable file view columns.
Public Functions
| Function | Description |
|---|---|
M.openFile(callbackFn, filenameSuffix, selectFolder, defaultPath, preview, caseSensitive) | Opens the file dialog in "Open" mode |
M.saveFile(callbackFn, filenameSuffix, selectFolder, defaultPath, overwriteDialogText) | Opens the file dialog in "Save" mode |
M.onEditorGui() | Draws the full file dialog UI |
M.onEditorInitialized() | Registers windows and preferences |
M.onEditorRegisterPreferences(prefsRegistry) | Registers files.fileDialog.* prefs |
M.onEditorActivated() | Editor activation callback |
M.onEditorDeactivated() | Editor deactivation callback |
M.onExtensionLoaded() | Extension loaded callback |
Callback Data
The callback receives a table with:
| Field | Type | Description |
|---|---|---|
path | string | Current directory path |
action | string | "Open" or "Save" |
filename | string | Selected filename |
filepath | string | Full path to selected file |
stat | table | File stat info (Open mode) |
filestat | string | "new" or "overwrite" (Save mode) |
Features
- Suffix filtering:
{{"Images", ".png"}, {"All", "*"}}or multi-extension tables - Image preview: Thumbnails for JPG/JPEG/PNG/DDS with dimensions display
- Favourites: Add/remove current path, persisted in preferences
- Recent dirs: Dropdown of last 10 visited directories
- Smart search: Type-ahead filename filtering
- Columns: Filename, Filesize, Filetype, Date created, Date modified (toggleable)
- New folder: Create directories inline
- Overwrite dialog: Confirmation when saving over existing files
Usage Example
-- Open a file dialog for JSON files
editor_fileDialog.openFile(
function(data)
log("I", "", "Selected: " .. data.filepath)
end,
{{"JSON Files", ".json"}, {"Any files", "*"}},
false, -- not folder select
"/levels/", -- default path
true -- with preview
)
-- Save dialog
editor_fileDialog.saveFile(
function(data)
writeFile(data.filepath, myContent)
end,
{{"Text Files", ".txt"}},
false,
"/output/"
)See Also
- Editor AI Tests - Related reference
- Editor AI Visualization - Related reference
- Editor – Assembly Spline Tool - Related reference
- World Editor Guide - Guide