Skip to content

Releases: aiekick/ImGuiFileDialog

ImGuiFileDialog v0.6.8

03 Oct 23:09

Choose a tag to compare

Hello dears,

this is a big release, since the last one was from february 2024.

First of all thank to my recurring sponsor :

Dont hesitate to sponsoring too. :)

As usual you can check the DemoApp branch and/or the Documentation.md for see the practical uses

See the changes of this release :

Addings :

[ADD] : [BREAKING CHANGES] add a new method in IFileSystem interface for retrieve file size and date (#202)
[ADD] : add a "select all files" shortcut. by default "ctrl+A". can be modified in config file
[ADD] : add a flag for have the filename input optional. so the dialog can be validated even if the filename input is empty
[ADD] : add right align size column (#187)
[ADD] : add the possibility to use natural sorting for filenames and extensions for the feature demand #186
[ADD] : add virtual methods for draw column selectable and texts of a row (needed by ex for a two color theme)
[ADD] : cmake: cmake: enable package manager support with install/export targets
[ADD] : a new singleton model (with creation/destroy by use at beginning and end). the old one is always here

Improvements :

[IMP] : in embedded mode, now this is the third argument vMinSize who size the frame. before it was the fourth vMaxSize (#191)
[IMP] : some progress for test engine. seee porject VirtualTests (WIP)
[IMP] : split extraction of the documentation part of README.md to Documentation.md

Fixes :

[FIX] : fix the exception msg print by a new exception with a custom message
[FIX] : Change API macro to not break outside code
[FIX] : Fix build on OpenBSD
[FIX] : UTF8 fixes for 'std::filesystem' version of IFileSystem
[FIX] : a selected filename who exist also in the current dir is well returned now (#184)
[FIX] : fix C compilation errors
[FIX] : fix IGFD_API "symbol in double" warnings by made the IGFD_API common for cpp and C sections. (#175)
[FIX] : fix a crash for particulur compareason case in Natural Sorting
[FIX] : fix a mutex lock
[FIX] : fix clang compiler warnings (#178)
[FIX] : fix compilation issue on UNIX like related in #176. btw, not reported with github action on theses systems....
[FIX] : fix compilation with exploration keys enabled (#200)
[FIX] : fix flags blending issue (under c++20) (#209)
[FIX] : fix in fileSystemStd::ScanDirectory implementation who was stopping the scan if one file was not accessible (#168)
[FIX] : fix issue regarding invalid drives who whas appearing in the device list (#204)
[FIX] : fix issue with images files with many dots (ex: toto.tata.png), where no thumbnails was generated
[FIX] : fix issue with places under unix (#205)
[FIX] : fix last commit (#202)
[FIX] : fix the Natural Sorting edges cases
[FIX] : fix the calling code in Doc. Where we must avoid the nested mode, where IGFD Display code is called inside of a ImGui Frame
[FIX] : fix unused argument
[FIX] : fix warnings of Clang 17.0.1
[FIX] : places was init at instance creation. now are init when we open the dialog (#218)
[FIX] : removed a assert in the regex check function (#169)
[FIX] : replaced cstdint for stdint.h since used by C and CPP apis
[FIX] : size and date was not retrieved for file path name with non utf8 chars (#202)
[FIX] : when the drive button is used, no drive can be selected. now fixed (#199)
[FIX] : fix issue with GetSelection() when directory opened and no files/dirs selection
[FIX] : fix issue with regex parsing. now regex support internal coma
[FIX] : fix last commit related to ImGui::PushFont

Refactorings :

[RFR] : Removed unused static function from the stf files, no more warnings
[RFR] : Removed the #Pragma region. helping nothing finally
[RFR] : Removed documentation section. quite unmaintainable, and the doc is in the Documentation.md file now
[RFR] : Renamed IMGUIFILEDIALOG_VERSION to IGFD_VERSION
[RFR] : add a define of imgui headers
[RFR] : come back of the "drives" button but now called "devices".
[RFR] : many refactor about vars who are some pointers
[RFR] : replace all NULL by nullptr
[RFR] : replacing the fs::create_directories by the old fs::create_directory
[RFR] : some refactors
[RFR] : upgrade CMakeLists.txt min version

Enjoy :)

ImGuiFileDialog v0.6.7

21 Feb 17:35

Choose a tag to compare

New Features

The new function stamps [BREAKING CHANGE]

there is now only one function stamp "OpenDialog" for all cases and for simplify futur additions
for customize the behavior you must pass to the function a IGFD::FileDialogConfig struct
See doc and DemoApp branch for infos of how to use it.

The new "Places" system [BREAKING CHANGE]

This release introduce a new "Places" system like we can see in many file explorers
The bookmarks and drives are now moved in the left side pane
See doc and DemoApp branch for infos of how to use it.

With this new system you can now add groups of links like the "shortcuts" on "recent" files on windows.
You can add many editable group like bookmarks
you can add your devices (replacing drives who was only available on windows)
and/or what you want or all systems

Example of what can be done : (see the left pane with the places)
alt text

The new callback for modify the file infos during scan

you can now change file infos during the file system scans by a user provided callback passed to the IGFD::FileDialogConfig
with this feature you can now by ex get the bin size corresponding to a gltf file (since the datas is in a separated file)
See doc and DemoApp branch for infos of how to use it.

ex in the DemoApp with a gltf files
Before the Use of the userAttribute callback :
user_files_attributes_before.png
After :
user_files_attributes_after.png

Fixes

  • Fix: prevent possible relative path on non-UNIX systems (Windows)
  • Replace busy waiting with condition variable, fix race condition
  • Fix memory leaks that were reported by LeakSanitizer on linux

ImGuiFileDialog v0.6.6.1

26 Nov 20:45

Choose a tag to compare

Little Release

due to a compilation mistake with the std::filesysem
not seen with the github actions because of a bad configuration of the CMakeList.txt

Changes of ImGuiFileDialog v0.6.6 :

We have reached the threshold of 1k stars. thanks all

Main changes :

  • Custom File System Api :
    you can now use your own file system api.
    the defaults available apis are Dirent (cpp11) and std::filesystem (cpp17)
    via this file system interface you can customize the drives list.
    Can be usefull by ex on android for select "local" or "sd cards" fs.
    see the DemoApp for an example implementation for boost::filesystem

  • Support of MultiLayer extentions (toto.a.b.c)

Misc :

  • Support of Dear ImGui 1.90.1
  • The lib is now in master branch, the app in DemoApp branch
  • many improvements about resulting in directory mode or file mode
  • For panes uses cases you need to call OpenDialogWithPane
  • Add result modes for GetFilePathName, GetFileName, getSelection. let you control how the file ext will be replaced
  • The quick path selection is now default, no more a define, but now a flag for disable it
  • The combo box auto size is no the default behavior
  • Removal of the hovered flags (useless)
  • The modal mode, hidden type column, and confirm overwrite are not default flags (more common use case)

Fixes :

  • Extension seperator in default filename gets removed
  • Now links are correctly shown on unix platforms [#141)
  • fix about the insensitive case of extention feature (#140)
  • fix about FileStyle by Extention (#118)

ImGuiFileDialog v0.6.6

25 Nov 15:09

Choose a tag to compare

We have reached the threshold of 1k stars. thanks all

Main changes :

  • Custom File System Api :
    you can now use your own file system api.
    the defaults available apis are Dirent (cpp11) and std::filesystem (cpp17)
    via this file system interface you can customize the drives list.
    Can be usefull by ex on android for select "local" or "sd cards" fs.
    see the DemoApp for an example implementation for boost::filesystem

  • Support of MultiLayer extentions (toto.a.b.c)

Misc :

  • Support of Dear ImGui 1.90.1
  • The lib is now in master branch, the app in DemoApp branch
  • many improvements about resulting in directory mode or file mode
  • For panes uses cases you need to call OpenDialogWithPane
  • Add result modes for GetFilePathName, GetFileName, getSelection. let you control how the file ext will be replaced
  • The quick path selection is now default, no more a define, but now a flag for disable it
  • The combo box auto size is no the default behavior
  • Removal of the hovered flags (useless)
  • The modal mode, hidden type column, and confirm overwrite are not default flags (more common use case)

Fixes :

  • Extension seperator in default filename gets removed
  • Now links are correctly shown on unix platforms [#141)
  • fix about the insensitive case of extention feature (#140)
  • fix about FileStyle by Extention (#118)

ImGuiFileDialog v0.6.5

29 May 13:42

Choose a tag to compare

The main changes are :

  • Support of Dear ImGui 1.89.5
  • Full rewrite of filter parsing
  • The Regex's are now supported for Filtering and File Styling
  • Add the support of File Styling by Lambda Function

See Readme file

ImGuiFileDialog v0.6.4

18 Feb 19:36

Choose a tag to compare

little update for ImGui 1.87

The dialog can be :

  • embedded in your imgui window now
  • can have ok and cancel button with different widths and placements
  • can disable with flags the display of the boobkmark
  • can display a popup of parallels directory with the path separator '' or '/' of the path composer

R40y1mJixc

see changes :

[ADD] : add a / between path in the composer. when you clik left on it, you have a popup of paralle directory, you can select
[ADD] : can invert the ok and cancel buttons (with the define invertOkAndCancelButtons)
[ADD] : add a way for tune the width of validation buttons, ok and cancel (defines okButtonWidth and cancelButtonWidth)
[ADD] : add a way for tune the position of the validations buttons. okCancelButtonAlignement is a ratio
by ex 0.0 is left, 0.5 middle, 1.0 right, and other ratios
[ADD] : add a way to disable the display of bookmark feature by the flag ImGuiFileDialogFlags_DisableBookmarkMode
[ADD] : add a way for embbed the FIleDialog in a user imgui begin/end scope, let inetrgate the dialog in any windows.
just need to use the flag ImGuiFileDialogFlags_NoDialog

ImGuiFileDialog v0.6.3

26 Oct 23:51

Choose a tag to compare

add a new style system for file / dir / links

  • can be used for define color, icon, font
  • can be used for define global style for all files / dirs / links

add IGFD_FileStyleFlags

  • IGFD_FileStyleByTypeFile mean define style for all files
  • IGFD_FileStyleByTypeDir mean define style for all dir
  • IGFD_FileStyleByTypeLink mean define style for all link
  • IGFD_FileStyleByExtention mean define style by extention, for files or links
  • IGFD_FileStyleByFullName mean define style for particular file/dir/link full name (filename + extention)
  • IGFD_FileStyleByContainedInFullName mean define style for file/dir/link when criteria is contained in full name

BREAKING CHANGE :

  • IGFD::FileExtentionInfos become IGFD::FileStyle
  • CPP : ImGuiFileDialog::SetExtentionInfos become ImGuiFileDialog::SetFileStyle(IGFD_FileStyleByExtention,
  • CPP : ImGuiFileDialog::GetExtentionInfos become ImGuiFileDialog::GetFileStyle(IGFD_FileStyleByExtention,
  • CPP : ImGuiFileDialog::ClearExtentionInfos become ImGuiFileDialog::ClearFilesStyle
  • C : IGFD_SetExtentionInfos become IGFD_SetFileStyle
  • C : IGFD_GetExtentionInfos become IGFD_GetFileStyle
  • C : IGFD_ClearExtentionInfos become IGFD_ClearFilesStyle

ImGuiFileDialog v0.6.2

30 Sep 20:08
7cfed54

Choose a tag to compare

Add the support of std::filesystem for replace dirent.h
need c++17 btw.

you just need to uncomment

#define USE_STD_FILESYSTEM

in the config file

ImGuiFileDialog v0.6.1

22 Sep 00:07

Choose a tag to compare

some fixs for complete the release v0.6

ImGuiFileDialog v0.6

20 Sep 22:59

Choose a tag to compare

Full rewrite of ImGuIFileDialog for Thumbnails display.

The texture creation and destroy is made in a agnostic way.
Successfully tested on OpenGl and Vulkan

you can check the Readme and the sample app in master branch

In test from 5 months on my softwares so i release it.
hope will be ok for all :-)

see a demo :
thumbnails.gif