Giter Site home page Giter Site logo

imgui-filebrowser's Introduction

github stats Top Langs

imgui-filebrowser's People

Contributors

adrianjmejias avatar airguanz avatar andywu0913 avatar blackbird806 avatar claudeha avatar jmorton06 avatar johannesugb avatar keymaster- avatar markuswalzthoeni avatar ncoder-1 avatar novialriptide avatar sebanisu avatar uuiid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imgui-filebrowser's Issues

paths containing "double quotes" are not listed (MINGW64/Wine)

When I cross-compile for Windows 64bit using MINGW64 and run in Wine on Linux, imgui-filebrowser does not list any paths that have "double quotes" in the name. They are simply missing from the listing. Other paths in the same directory are listed correctly, including those with spaces and/or 'apostrophes'.

  • not a WIne bug (other Windows EXEs not using imgui-filebrowser can list paths with "double quotes")
  • nor a MINGW64 bug (simple command line test program using #include <filesystem> can list paths with "double quotes")
  • problem does not occur in a native Linux build (my host OS is Debian Bullseye/testing), the paths with "double quotes" are listed as expected
  • I haven't tested behaviour on real Microsoft Windows (I don't have any such machine).
$ wine --version
wine-5.0.2
$ x86_64-w64-mingw32-g++ --version
x86_64-w64-mingw32-g++ (GCC) 10-win32 20200525
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

`#include <version>` requires C++20

It seems that some C++20 crept in with #include <version>:

https://en.cppreference.com/w/cpp/utility#Language_support

The header <version> supplies implementation-dependent information about the C++ standard library (such as the version number and release date). It also defines the library feature-test macros. | (since C++20)

(emphasis mine)

Compilation currently fails with C++17:

$ g++ -std=c++17 ...
...
../../imgui-filebrowser/imfilebrowser.h:37:10: fatal error: version: No such file or directory
 #include <version>
          ^~~~~~~~~
compilation terminated.

I have an interest in compiling my program on Debian Buster (current stable), whose g++ does not support full C++20 (only an incomplete -std=c++2a), so I will investigate and see if this include is strictly necessary, or what can be done to replace it.

$ g++ --version
g++ (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Read access violation when setting type filters on release

Can't seem to replicate consistently, But when using the file browser I will sometimes get an "Exception thrown at 0x00007FF776436552 in ProjectName.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFF8."

the call stack shows that this is caused by SetTypeFilter().
Capture (2)

Also important to note that this only happens in release

Capitalized extensions are ignored

For example if a file has the extension .TXT. Calling SetTypeFilters({".txt", ".TXT"}), won't show any files with capitalized extensions.

Compilation fails in Visual Studio less than 2019 due to missing include

Multiple errors will occur stating "error C2672: 'std::tolower': no matching overloaded function found"; this is only due to the fact that the cctype header is not included at the top of the file so only a template overload which requires a std::locale instance as a second argument is visible to the compiler.

gcc warns about possible string non-termination after `strncpy()`

https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wstringop-truncation suggests using memcpy() instead if NUL termination is not required, if NUL is needed buffer should be bigger or size to copy should be smaller (and maybe the final NUL needs to be added manually). Haven't investigated further to know which is the case...

../../imgui-filebrowser/imfilebrowser.h: In member function ‘void ImGui::FileBrowser::Display()’:
../../imgui-filebrowser/imfilebrowser.h:475:41: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 512 equals destination size [-Wstringop-truncation]
  475 |                             std::strncpy(inputNameBuf_->data(),
      |                             ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  476 |                                          u8StrToStr(rsc.name.u8string()).c_str(),
      |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  477 |                                          inputNameBuf_->size());
      |                                          ~~~~~~~~~~~~~~~~~~~~~~

std::strncpy(inputNameBuf_->data(),
u8StrToStr(rsc.name.u8string()).c_str(),
inputNameBuf_->size());

Support for selecting folder too

This is a very cool project and I am planning to use it. I see this can act as file selector, but is there a way to provide functionality to just select a folder ? Otherwise I will have to do the processing at my end.

Missing some extensions when using SetTypeFilters()

When I try to use SetTypeFilters() like this

    fileDialog.SetTypeFilters({ ".*", ".dds" });

And make filter combobox to ",*". Then I'll get this
image

But I think it should be
image
(2 hdr file missed.)

So I switched location of these two code segments

    // all type filters
    if(typeFilters_.size() > 1 && typeFilterIndex_ == 0)
    {
        for(size_t i = 1; i < typeFilters_.size(); ++i)
        {
            if(extension == typeFilters_[i])
                return true;
        }
        return false;
    }

    // universal filter
    if(typeFilters_[typeFilterIndex_] == std::string_view(".*"))
        return true;

to

    // universal filter
    if(typeFilters_[typeFilterIndex_] == std::string_view(".*"))
        return true;

    // all type filters
    if(typeFilters_.size() > 1 && typeFilterIndex_ == 0)
    {
        for(size_t i = 1; i < typeFilters_.size(); ++i)
        {
            if(extension == typeFilters_[i])
                return true;
        }
        return false;
    }

And it will be fixed...
image

It's good for me. But I'm not sure will this cause any other problems...

Not working with gamepad

It seems that the selection does not work with the gamepad, all is good on my side it must be related to the ImGui::IsItemClicked

Mouse position bug on multiple monitors

It seems like if you use this library on a pc with multiple monitors with different resolutions the mouse position is not correct on the other display.
I don't know if this bus is specific to this library or to ImGui.

image

请问怎么才能设置成多选

请问怎么设置成多选。这是为写的代码,但是失败了
if (show_upload_images_window){
fileDialog.Open();

        fileDialog.Display();
        if(fileDialog.HasSelected())
        {
           
            fileDialog.GetMultiSelected();
            fileDialog.Close();
        }
        
    }

file not loading until clicked a second time

i am working on a music player and i am using this library for navigation and as soon as i select a file the dialog file closes and the file does not load but when i open the file dialog again, it works

Here's my code snippet:

`void Window::Update() {
ImGui::SFML::Update(m_window, deltaClock.restart());

if (ImGui::Begin("FILE EXPLORER"))
{

	if (ImGui::Button("Select Directory"))
		m_browser.Open();
}
ImGui::End();

static float volume = 100;
static bool pause = false;
ImGui::Begin("Volume Manager");
ImGui::SliderFloat("vol", &volume, 0, 100);
ImGui::End();

ImGui::Begin("play manager");
ImGui::Checkbox("Pause", &pause);
ImGui:: End();

m_browser.Display();
if (m_browser.HasSelected()) 
{
	if (!fileSelected) 
	{
		filePath = m_browser.GetSelected().string();
		std::cout << filePath << "selected" << std::endl;
		player.load(filePath);
		player.play(volume);
		player.pause(pause);
		fileSelected = true;
	}
	else {
		fileSelected = false;
	}
	
}

}`
the volume and pause only works when the file dialog closes the first time, not while the music is running
m_browser is of type ImGui::FIleBrowser

Building failed with msys2

Hello, I tried to build with my project under msys2 mingw32-bit but failed eventually. Would this library support msys2?

[ 50%] Building CXX object CMakeFiles/imgui_sfml_example.dir/main.cpp.obj
In file included from C:/Users/Rish/Desktop/rish/Imgui_test/test/main.cpp:11:
C:/Users/Rish/Desktop/rish/Imgui_test/test/imfilebrowser.h: In member function 'void ImGui::FileBrowser::Display()':
C:/Users/Rish/Desktop/rish/Imgui_test/test/imfilebrowser.h:441:88: error: cannot convert 'const value_type*' {aka 'const wchar_t*'} to 'const char*'
  441 |                             std::strncpy(inputNameBuf_->data(), selectedFilename_.c_str(),
      |                                                                 ~~~~~~~~~~~~~~~~~~~~~~~^~
      |                                                                                        |
      |                                                                                        const value_type* {aka const wchar_t*}
In file included from C:/msys64/mingw32/include/imgui.h:58,
                 from C:/Users/Rish/Desktop/rish/Imgui_test/test/main.cpp:4:
C:/msys64/mingw32/i686-w64-mingw32/include/string.h:89:69: note:   initializing argument 2 of 'char* strncpy(char*, const char*, size_t)'
   89 |   char *strncpy(char * __restrict__ _Dest,const char * __restrict__ _Source,size_t _Count) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
make[2]: *** [CMakeFiles/imgui_sfml_example.dir/build.make:80:CMakeFiles/imgui_sfml_example.dir/main.cpp.obj] 錯誤 1
make[2]: 離開目錄「/c/Users/Rish/Desktop/rish/Imgui_test/test/build」
make[1]: *** [CMakeFiles/Makefile2:93:CMakeFiles/imgui_sfml_example.dir/all] 錯誤 2
make[1]: 離開目錄「/c/Users/Rish/Desktop/rish/Imgui_test/test/build」
make: *** [Makefile:101:all] 錯誤 2

crashes when selecting ok when no directory is selected

In a directory browser, if you press ok without selecting anything then ok_ is still set, so HasSelected() is true despite selectedFilenames_ being empty, which means user code that calls GetSelected() will crash (begin() points nowhere). Here is a small fix that returns the current directory in that case, preventing the crash, and providing reasonably intuitive behaviour.

diff --git a/imgui-filebrowser/imfilebrowser.h b/imgui-filebrowser/imfilebrowser.h
index 8b92c598..18909c8f 100644
--- a/imgui-filebrowser/imfilebrowser.h
+++ b/imgui-filebrowser/imfilebrowser.h
@@ -587,6 +587,10 @@ inline const class std::filesystem::path &ImGui::FileBrowser::GetPwd() const noe
 
 inline std::filesystem::path ImGui::FileBrowser::GetSelected() const
 {
+    if ((flags_ & ImGuiFileBrowserFlags_SelectDirectory) && selectedFilenames_.empty())
+    {
+        return pwd_;
+    }
     return pwd_ / *selectedFilenames_.begin();
 }
 

If absolutely necessary I could go through the pull request dance...

File browser turns gray instead of background with recent ImGui version.

Hi,
first of: I love your work!

I recently updated the ImGui files in my project to the newest version. This seems to have broken the "gray turning" (not sure what this is called in ImGui-slang). Instead of the background, the file browser turns gray. This seems to be only a visual bug.

This is a screenshot of your "Getting Started"-Example code, with the old ImGui-files (v1.67):
screenshot-1

And this is a screenshot of the same code, but using the most recent ImGui (v1.88):
screenshot-2

I'm having the same issue on Mac and Windows. Do you know what the reason for this could be?
Thank you. <3

ImGui::End() seems to be missing in readme.md

ImGui::Begin(name);
if(ImGui::Begin("dummy window"))
{
// open file dialog when user clicks this button
if(ImGui::Button("open file dialog"))
fileDialog.Open();
ImGui::End(); //add here
}
ImGui::End();

Missing including header file "vector"

When I was compiling the imgui example code with the imfilebrowser.h included, it showed the error messages below.

In file included from main.cpp:9:
./imfilebrowser.h:134:34: error: implicit instantiation of undefined template 'std::__1::vector<const char *,
      std::__1::allocator<const char *> >'
        std::vector<const char*> typeFilters_;
                                 ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iosfwd:216:28: note: template is declared here
class _LIBCPP_TEMPLATE_VIS vector;
                           ^
In file included from main.cpp:9:
./imfilebrowser.h:147:33: error: implicit instantiation of undefined template
      'std::__1::vector<ImGui::FileBrowser::FileRecord, std::__1::allocator<ImGui::FileBrowser::FileRecord> >'
        std::vector<FileRecord> fileRecords_;
                                ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iosfwd:216:28: note: template is declared here
class _LIBCPP_TEMPLATE_VIS vector;
                           ^
2 errors generated.

No mapping for the Unicode character

Sup, i have a small problem, every time i try to go to "AppData\Local" i get a "No mapping for the Unicode character exists in the target..." I was trying to find a solution for like 3 hours before but i didn't figure out anything.

A lot of errors when compiling with GCC.

CMakeLists.txt:

cmake_minimum_required(VERSION 3.15)

project(YMVD VERSION 0.3)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

set(LIBS "${CMAKE_SOURCE_DIR}/lib/opengl32.dll" imm32.lib "${CMAKE_SOURCE_DIR}/lib/glfw3.dll")

file (
    GLOB SOURCE_FILES 
    "${CMAKE_SOURCE_DIR}/sources/*.cpp"
    "${CMAKE_SOURCE_DIR}/sources/*.c"
    "${CMAKE_SOURCE_DIR}/libraries/glad/src/glad.c"
    "${CMAKE_SOURCE_DIR}/libraries/ImGui/*.cpp"
)

add_executable(YMVD ${SOURCE_FILES})

target_include_directories (
    YMVD PUBLIC
    "${CMAKE_SOURCE_DIR}/libraries/GLFW/include"
    "${CMAKE_SOURCE_DIR}/libraries/glm/include"
    "${CMAKE_SOURCE_DIR}/libraries/glad/include"
    "${CMAKE_SOURCE_DIR}/libraries/ImGui"
)

target_link_libraries(YMVD ${LIBS})

cmake-tools-kits.json:

[
  {
    "name": "Clang 12.0.0 x86_64-pc-windows-msvc",
    "compilers": {
      "C": "C:\\Program Files\\LLVM\\bin\\clang.exe",
      "CXX": "C:\\Program Files\\LLVM\\bin\\clang++.exe"
    },
    "preferredGenerator": {
      "name": "MinGW Makefiles"
    },
    "environmentVariables": {
      "CMT_MINGW_PATH": "C:\\MinGW\\bin"
    }
  },
  {
    "name": "GCC 6.3.0 mingw32",
    "compilers": {
      "C": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin\\gcc.exe",
      "CXX": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe"
    },
    "preferredGenerator": {
      "name": "MinGW Makefiles"
    },
    "environmentVariables": {
      "CMT_MINGW_PATH": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin"
    },
    "keep": true
  },
  {
    "name": "Visual Studio Community 2019 Release - amd64",
    "visualStudio": "93248eac",
    "visualStudioArchitecture": "x64",
    "preferredGenerator": {
      "name": "Visual Studio 16 2019",
      "platform": "x64",
      "toolset": "host=x64"
    }
  },
  {
    "name": "Visual Studio Community 2019 Release - amd64_x86",
    "visualStudio": "93248eac",
    "visualStudioArchitecture": "x64",
    "preferredGenerator": {
      "name": "Visual Studio 16 2019",
      "platform": "win32",
      "toolset": "host=x64"
    }
  },
  {
    "name": "Visual Studio Community 2019 Release - x86",
    "visualStudio": "93248eac",
    "visualStudioArchitecture": "x86",
    "preferredGenerator": {
      "name": "Visual Studio 16 2019",
      "platform": "win32",
      "toolset": "host=x86"
    }
  },
  {
    "name": "Visual Studio Community 2019 Release - x86_amd64",
    "visualStudio": "93248eac",
    "visualStudioArchitecture": "x86",
    "preferredGenerator": {
      "name": "Visual Studio 16 2019",
      "platform": "x64",
      "toolset": "host=x86"
    }
  }
]

Error:

In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h: In member function 'std::filesystem::__cxx11::path& std::filesystem::__cxx11::path::operator/=(const std::filesystem::__cxx11::path&)':
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:47: error: no match for 'operator!=' (operand types are 'std::filesystem::__cxx11::path' and 'std::filesystem::__cxx11::path')
    || (__p.has_root_name() && __p.root_name() != root_name()))
                               ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/utility:70,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/algorithm:60,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:3,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_pair.h:456:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator!=(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)'
     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_pair.h:456:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::pair<_T1, _T2>'     
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_algobase.h:67,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/algorithm:61,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:3,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_iterator.h:311:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)'
     operator!=(const reverse_iterator<_Iterator>& __x,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_iterator.h:311:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::reverse_iterator<_Iterator>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_algobase.h:67,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/algorithm:61,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:3,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_iterator.h:349:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)'
     operator!=(const reverse_iterator<_IteratorL>& __x,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_iterator.h:349:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::reverse_iterator<_Iterator>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_algobase.h:67,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/algorithm:61,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:3,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_iterator.h:1124:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)'
     operator!=(const move_iterator<_IteratorL>& __x,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_iterator.h:1124:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::move_iterator<_IteratorL>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_algobase.h:67,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/algorithm:61,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:3,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_iterator.h:1130:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)'
     operator!=(const move_iterator<_Iterator>& __x,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_iterator.h:1130:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::move_iterator<_IteratorL>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/char_traits.h:40,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:40,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/postypes.h:221:5: note: candidate: 'template<class _StateT> bool std::operator!=(const std::fpos<_StateT>&, const std::fpos<_StateT>&)'
     operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/postypes.h:221:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::fpos<_StateT>'      
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:41,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/allocator.h:158:5: note: candidate: 'template<class _T1, class _T2> bool std::operator!=(const std::allocator<_Tp>&, const std::allocator<_Tp>&)'
     operator!=(const allocator<_T1>&, const allocator<_T2>&)
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/allocator.h:158:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::allocator<_Tp>'     
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:41,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/allocator.h:164:5: note: candidate: 'template<class _Tp> bool std::operator!=(const std::allocator<_Tp>&, const std::allocator<_Tp>&)'
     operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/allocator.h:164:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::allocator<_Tp>'     
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:48,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:454:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)'
     operator!=(basic_string_view<_CharT, _Traits> __x,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:454:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'std::basic_string_view<_CharT, 
_Traits>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:48,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:460:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::basic_string_view<_CharT, _Traits>, std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >)'
     operator!=(basic_string_view<_CharT, _Traits> __x,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:460:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'std::basic_string_view<_CharT, 
_Traits>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:48,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:466:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >, std::basic_string_view<_CharT, _Traits>)'
     operator!=(__detail::__idt<basic_string_view<_CharT, _Traits>> __x,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string_view:466:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'std::basic_string_view<_CharT, 
_Traits>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6056:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6056:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6069:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
     operator!=(const _CharT* __lhs,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6069:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   mismatched types 'const _CharT*' and 'std::filesystem::__cxx11::path'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:52,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdexcept:39,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:39,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6081:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*)'
     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/basic_string.h:6081:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:4,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:257:5: note: candidate: 'template<class _Tp, long long unsigned int _Nm> bool std::operator!=(const std::array<_Tp, _Nm>&, const std::array<_Tp, _Nm>&)'
     operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/array:257:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::array<_Tp, _Nm>'    
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_fwd.h:35,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:36,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:319:3: note: candidate: 'bool std::operator!=(const std::error_code&, const std::error_code&)'
   operator!=(const error_code& __lhs, const error_code& __rhs) noexcept
   ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:319:3: note:   no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const std::error_code&'
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:323:3: note: candidate: 'bool std::operator!=(const std::error_code&, const std::error_condition&)'    
   operator!=(const error_code& __lhs, const error_condition& __rhs) noexcept
   ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:323:3: note:   no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const std::error_code&'
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:327:3: note: candidate: 'bool std::operator!=(const std::error_condition&, const std::error_code&)'    
   operator!=(const error_condition& __lhs, const error_code& __rhs) noexcept
   ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:327:3: note:   no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const std::error_condition&'
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:331:3: note: candidate: 'bool std::operator!=(const std::error_condition&, const std::error_condition& 
'
   operator!=(const error_condition& __lhs,
   ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/system_error:331:3: note:   no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const std::error_condition&'
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/vector:64,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:37,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_vector.h:1772:5: note: candidate: 'template<class _Tp, class _Alloc> bool std::operator!=(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)'
     operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_vector.h:1772:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::vector<_Tp, _Alloc>'    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_facets.h:48,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/locale:40,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:38,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/streambuf_iterator.h:209:5: note: candidate: 'template<class _CharT, class _Traits> bool std::operator!=(const 
std::istreambuf_iterator<_CharT, _Traits>&, const std::istreambuf_iterator<_CharT, _Traits>&)'
     operator!=(const istreambuf_iterator<_CharT, _Traits>& __a,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/streambuf_iterator.h:209:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::istreambuf_iterator<_CharT, _Traits>'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/unique_ptr.h:37,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_conv.h:41,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/locale:43,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:38,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tuple:1439:5: note: candidate: 'template<class ... _TElements, class ... _UElements> constexpr bool std::operator!=(const std::tuple<_Tps ...>&, const std::tuple<_Elements ...>&)'
     operator!=(const tuple<_TElements...>& __t,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tuple:1439:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::tuple<_Tps ...>'    
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_conv.h:41,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/locale:43,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:38,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/unique_ptr.h:706:5: note: candidate: 'template<class _Tp, class _Dp, class _Up, class _Ep> bool std::operator!=(const std::unique_ptr<_Tp, _Dp>&, const std::unique_ptr<_Up, _Ep>&)'
     operator!=(const unique_ptr<_Tp, _Dp>& __x,
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/unique_ptr.h:706:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::unique_ptr<_Tp, _Dp 
'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_conv.h:41,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/locale:43,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:38,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/unique_ptr.h:712:5: note: candidate: 'template<class _Tp, class _Dp> bool std::operator!=(const std::unique_ptr<_Tp, _Dp>&, std::nullptr_t)'
     operator!=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/unique_ptr.h:712:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::unique_ptr<_Tp, _Dp 
'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_conv.h:41,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/locale:43,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:38,
                 from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/unique_ptr.h:717:5: note: candidate: 'template<class _Tp, class _Dp> bool std::operator!=(std::nullptr_t, const std::unique_ptr<_Tp, _Dp>&)'
     operator!=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept
     ^~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/unique_ptr.h:717:5: note:   template argument deduction/substitution failed:
In file included from C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/filesystem:37,
                 from C:/Users/alexa/Desktop/YMVD/headers/imfilebrowser.h:6,
                 from C:\Users\alexa\Desktop\YMVD\sources\window.cpp:234:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:237:60: note:   'std::filesystem::__cxx11::path' is not derived from 'const std::unique_ptr<_Tp, _Dp 
'
    || (__p.has_root_name() && __p.root_name() != root_name()))
                                                            ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h: At global scope:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:511:18: error: specialization of 'std::filesystem::__cxx11::path::__is_encoded_char<wchar_t>' after instantiation
     struct path::__is_encoded_char<wchar_t> : std::true_type
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h: In function 'decltype (std::filesystem::__cxx11::path(__source, std::locale::classic())) std::filesystem::__cxx11::u8path(const _Source&)':
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:589:68: error: no matching function for call to 'u8path(std::__cxx11::basic_string<char>::const_iterator, std::__cxx11::basic_string<char>::const_iterator)'
       return std::filesystem::u8path(__u8str.begin(), __u8str.end());
                                                                    ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:584:5: note: candidate: 'template<class _Source> decltype (std::filesystem::__cxx11::path(__source, std::locale::classic())) std::filesystem::__cxx11::u8path(const _Source&)'
     u8path(const _Source& __source)
     ^~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:584:5: note:   template argument deduction/substitution failed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:589:68: note:   candidate expects 1 argument, 2 provided
       return std::filesystem::u8path(__u8str.begin(), __u8str.end());
                                                                    ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h: In function 'decltype (std::filesystem::__cxx11::path(__first, __last, std::locale::classic())) std::filesystem::__cxx11::u8path(_InputIterator, _InputIterator)':
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:601:20: error: 'value_type' was not declared in this scope
       codecvt_utf8<value_type> __cvt;
                    ^~~~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:601:20: note: suggested alternative: 'false_type'
       codecvt_utf8<value_type> __cvt;
                    ^~~~~~~~~~
                    false_type
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:601:30: error: template argument 1 is invalid
       codecvt_utf8<value_type> __cvt;
                              ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:602:7: error: 'string_type' was not declared in this scope
       string_type __tmp;
       ^~~~~~~~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:602:7: note: suggested alternative: 'string_view'
       string_type __tmp;
       ^~~~~~~~~~~
       string_view
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:603:45: error: '__tmp' was not declared in this scope
       if (__str_codecvt_in(__first, __last, __tmp, __cvt))
                                             ^~~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:603:45: note: suggested alternative: 'rmtmp'
       if (__str_codecvt_in(__first, __last, __tmp, __cvt))
                                             ^~~~~
                                             rmtmp
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h: In member function 'int std::filesystem::__cxx11::path::compare(const string_type&) const':
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:1014:72: error: no matching function for call to 'std::filesystem::__cxx11::path::path(const string_type&)'
   path::compare(const string_type& __s) const { return compare(path(__s)); }
                                                                        ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:402:5: note: candidate: 'std::filesystem::__cxx11::path::path(std::filesystem::__cxx11::path::string_type, std::filesystem::__cxx11::path::_Type)'
     path(string_type __str, _Type __type) : _M_pathname(__str), _M_type(__type)
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:402:5: note:   candidate expects 2 arguments, 1 provided
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:202:7: note: candidate: 'template<class _InputIterator, class _Require, class _Require2> std::filesystem::__cxx11::path::path(_InputIterator, _InputIterator, const std::locale&, std::filesystem::__cxx11::path::format)'
       path(_InputIterator __first, _InputIterator __last, const locale& __loc,
       ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:202:7: note:   template argument deduction/substitution failed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:1014:72: note:   candidate expects 4 arguments, 1 provided
   path::compare(const string_type& __s) const { return compare(path(__s)); }
                                                                        ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:194:7: note: candidate: 'template<class _Source, class _Require, class _Require2> std::filesystem::__cxx11::path::path(const _Source&, const std::locale&, std::filesystem::__cxx11::path::format)'
       path(_Source const& __source, const locale& __loc, format = auto_format)
       ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:194:7: note:   template argument deduction/substitution failed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:1014:72: note:   candidate expects 3 arguments, 1 provided
   path::compare(const string_type& __s) const { return compare(path(__s)); }
                                                                        ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:187:7: note: candidate: 'template<class _InputIterator, class _Require> std::filesystem::__cxx11::path::path(_InputIterator, _InputIterator, std::filesystem::__cxx11::path::format)'
       path(_InputIterator __first, _InputIterator __last, format = auto_format)
       ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:187:7: note:   template argument deduction/substitution failed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:1014:72: note:   candidate expects 3 arguments, 1 provided
   path::compare(const string_type& __s) const { return compare(path(__s)); }
                                                                        ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:180:7: note: candidate: 'template<class _Source, class _Require> std::filesystem::__cxx11::path::path(const _Source&, std::filesystem::__cxx11::path::format)'
       path(_Source const& __source, format = auto_format)
       ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:180:7: note:   template argument deduction/substitution failed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:174:5: note: candidate: 'std::filesystem::__cxx11::path::path(std::filesystem::__cxx11::path::string_type&&, std::filesystem::__cxx11::path::format)' <near match>
     path(string_type&& __source, format = auto_format)
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:174:5: note:   conversion of argument 1 would be ill-formed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:1014:69: error: cannot bind rvalue reference of type 'std::filesystem::__cxx11::path::string_type&&' 
{aka 'std::__cxx11::basic_string<wchar_t>&&'} to lvalue of type 'const string_type' {aka 'const std::__cxx11::basic_string<wchar_t>'}
   path::compare(const string_type& __s) const { return compare(path(__s)); }
                                                                     ^~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:167:5: note: candidate: 'std::filesystem::__cxx11::path::path(std::filesystem::__cxx11::path&&)'     
     path(path&& __p) noexcept
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:167:5: note:   no known conversion for argument 1 from 'const string_type' {aka 'const std::__cxx11::basic_string<wchar_t>'} to 'std::filesystem::__cxx11::path&&'
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:165:5: note: candidate: 'std::filesystem::__cxx11::path::path(const std::filesystem::__cxx11::path&)'     path(const path& __p) = default;
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:165:5: note:   no known conversion for argument 1 from 'const string_type' {aka 'const std::__cxx11::basic_string<wchar_t>'} to 'const std::filesystem::__cxx11::path&'
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:163:5: note: candidate: 'std::filesystem::__cxx11::path::path()'
     path() noexcept { }
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:163:5: note:   candidate expects 0 arguments, 1 provided
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h: In member function 'int std::filesystem::__cxx11::path::compare(std::basic_string_view<wchar_t>) const':
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:1021:28: error: no matching function for call to 'std::filesystem::__cxx11::path::path(std::basic_string_view<wchar_t>&)'
   { return compare(path(__s)); }
                            ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:402:5: note: candidate: 'std::filesystem::__cxx11::path::path(std::filesystem::__cxx11::path::string_type, std::filesystem::__cxx11::path::_Type)'
     path(string_type __str, _Type __type) : _M_pathname(__str), _M_type(__type)
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:402:5: note:   candidate expects 2 arguments, 1 provided
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:202:7: note: candidate: 'template<class _InputIterator, class _Require, class _Require2> std::filesystem::__cxx11::path::path(_InputIterator, _InputIterator, const std::locale&, std::filesystem::__cxx11::path::format)'
       path(_InputIterator __first, _InputIterator __last, const locale& __loc,
       ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:202:7: note:   template argument deduction/substitution failed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:1021:28: note:   candidate expects 4 arguments, 1 provided
   { return compare(path(__s)); }
                            ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:194:7: note: candidate: 'template<class _Source, class _Require, class _Require2> std::filesystem::__cxx11::path::path(const _Source&, const std::locale&, std::filesystem::__cxx11::path::format)'
       path(_Source const& __source, const locale& __loc, format = auto_format)
       ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:194:7: note:   template argument deduction/substitution failed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:1021:28: note:   candidate expects 3 arguments, 1 provided
   { return compare(path(__s)); }
                            ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:187:7: note: candidate: 'template<class _InputIterator, class _Require> std::filesystem::__cxx11::path::path(_InputIterator, _InputIterator, std::filesystem::__cxx11::path::format)'
       path(_InputIterator __first, _InputIterator __last, format = auto_format)
       ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:187:7: note:   template argument deduction/substitution failed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:1021:28: note:   candidate expects 3 arguments, 1 provided
   { return compare(path(__s)); }
                            ^
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:180:7: note: candidate: 'template<class _Source, class _Require> std::filesystem::__cxx11::path::path(const _Source&, std::filesystem::__cxx11::path::format)'
       path(_Source const& __source, format = auto_format)
       ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:180:7: note:   template argument deduction/substitution failed:
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:174:5: note: candidate: 'std::filesystem::__cxx11::path::path(std::filesystem::__cxx11::path::string_type&&, std::filesystem::__cxx11::path::format)'
     path(string_type&& __source, format = auto_format)
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:174:5: note:   no known conversion for argument 1 from 'std::basic_string_view<wchar_t>' to 'std::filesystem::__cxx11::path::string_type&&' {aka 'std::__cxx11::basic_string<wchar_t>&&'}
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:167:5: note: candidate: 'std::filesystem::__cxx11::path::path(std::filesystem::__cxx11::path&&)'     
     path(path&& __p) noexcept
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:167:5: note:   no known conversion for argument 1 from 'std::basic_string_view<wchar_t>' to 'std::filesystem::__cxx11::path&&'
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:165:5: note: candidate: 'std::filesystem::__cxx11::path::path(const std::filesystem::__cxx11::path&)'     path(const path& __p) = default;
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:165:5: note:   no known conversion for argument 1 from 'std::basic_string_view<wchar_t>' to 'const std::filesystem::__cxx11::path&'
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:163:5: note: candidate: 'std::filesystem::__cxx11::path::path()'
     path() noexcept { }
     ^~~~
C:/PROGRA~1/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:163:5: note:   candidate expects 0 arguments, 1 provided
make[2]: *** [CMakeFiles\YMVD.dir\build.make:211: CMakeFiles/YMVD.dir/sources/window.cpp.obj] Error 1
make[1]: *** [CMakeFiles\Makefile2:82: CMakeFiles/YMVD.dir/all] Error 2
make: *** [Makefile:90: all] Error 2

Double-click file selection

Hi, nice filebrowser!
For single file selection it would be nice to be able to double click a file to open it.

An incomplete solution is doing something like

if (IsItemClicked(0) && IsMouseDoubleClicked(0)) {
    if(rsc.isDir)
    {
        setNewPwd = true;
        newPwd = (rsc.name != "..") ? (pwd_ / rsc.name) :
                                    pwd_.parent_path();
    } else if (selected && !(flags_ & ImGuiFileBrowserFlags_SelectDirectory)) { // double click on file
        ok_ = true;
        CloseCurrentPopup();
    }
}

but that only works for double-clicking a non-selected file. Double-clicking an already selected file deselect and forgets the file with the first click.

Only compiles with C++17

C++17 is the only standard this header can be compiled with. Anything below has no filesystem support and anything above (so currently only C++20) complains about char8_t not being convertible to char.

Selecting items in dialog under linux

Hi,

I encounter an issue compiling your library under Ubuntu 18.04. I use the latest version of dear imgui and glfw + opengl3 implementation. Integrating the lib, compiling and everything worked as a charm. also calling and opening the dialog-windows works pretty fine. But here my problem starts: I am not able to select anything. Double-clicking on folders changes the text on the "OK"-Button to "open", but a frame later it disappears again and "OK" is the text again.
Finally clicking in "OK" gives back as "selected" the absolute folder path of the folder, in which the application is started.

I tried compiling it with clang-9.0.1 and gcc-9.0.1.

Here is my code:

#include <iostream>

// dear imgui: standalone example application for GLFW + OpenGL 3, using programmable pipeline
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)

#include <imgui.h>
#include <imgui_impl_glfw.h>
#include <imgui_impl_opengl3.h>
#include <imfilebrowser.h>
#include <stdio.h>

// About Desktop OpenGL function loaders:
//  Modern desktop OpenGL doesn't have a standard portable header file to load OpenGL function pointers.
//  Helper libraries are often used for this purpose! Here we are supporting a few common ones (gl3w, glew, glad).
//  You may use another loader/header of your choice (glext, glLoadGen, etc.), or chose to manually implement your own.
#if defined(IMGUI_IMPL_OPENGL_LOADER_GL3W)
#include <GL/gl3w.h> // Initialize with gl3wInit()
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLEW)
#include <GL/glew.h> // Initialize with glewInit()
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
#include <glad/glad.h> // Initialize with gladLoadGL()
#else
#include IMGUI_IMPL_OPENGL_LOADER_CUSTOM
#endif

// Include glfw3.h after our OpenGL definitions
#include <GLFW/glfw3.h>

// [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to maximize ease of testing and compatibility with old VS compilers.
// To link with VS2010-era libraries, VS2015+ requires linking with legacy_stdio_definitions.lib, which we do using this pragma.
// Your own project should not be affected, as you are likely to link with a newer binary of GLFW that is adequate for your version of Visual Studio.
#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS)
#pragma comment(lib, "legacy_stdio_definitions")
#endif

static void glfw_error_callback(int error, const char *description)
{
    fprintf(stderr, "Glfw Error %d: %s\n", error, description);
}

int main(int, char **)
{
    // Setup window
    glfwSetErrorCallback(glfw_error_callback);
    if (!glfwInit())
        return 1;

    // GL 3.0 + GLSL 130
    const char *glsl_version = "#version 130";
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
    //glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);  // 3.2+ only
    //glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);            // 3.0+ only

    // Create window with graphics context
    GLFWwindow *window = glfwCreateWindow(1280, 720, "Dear ImGui GLFW+OpenGL3 example", NULL, NULL);
    if (window == NULL)
        return 1;
    glfwMakeContextCurrent(window);
    glfwSwapInterval(1); // Enable vsync

    // Initialize OpenGL loader
#if defined(IMGUI_IMPL_OPENGL_LOADER_GL3W)
    bool err = gl3wInit() != 0;
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLEW)
    bool err = glewInit() != GLEW_OK;
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
    bool err = gladLoadGL() == 0;
#else
    bool err = false; // If you use IMGUI_IMPL_OPENGL_LOADER_CUSTOM, your loader is likely to requires some form of initialization.
#endif
    if (err)
    {
        fprintf(stderr, "Failed to initialize OpenGL loader!\n");
        return 1;
    }

    // Setup Dear ImGui context
    IMGUI_CHECKVERSION();
    ImGui::CreateContext();
    ImGuiIO &io = ImGui::GetIO();
    (void)io;
    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;     // Enable Keyboard Controls
    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;      // Enable Gamepad Controls

    // Setup Dear ImGui style
    ImGui::StyleColorsDark();
    //ImGui::StyleColorsClassic();

    // Setup Platform/Renderer bindings
    ImGui_ImplGlfw_InitForOpenGL(window, true);
    ImGui_ImplOpenGL3_Init(glsl_version);

    // Our state
    bool show_demo_window = true;
    bool show_another_window = true;
    ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);

    // Main loop
    while (!glfwWindowShouldClose(window))
    {
        // Poll and handle events (inputs, window resize, etc.)
        // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
        // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application.
        // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application.
        // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
        glfwPollEvents();

        // Start the Dear ImGui frame
        ImGui_ImplOpenGL3_NewFrame();
        ImGui_ImplGlfw_NewFrame();
        ImGui::NewFrame();

        // create a window for an iamge
        {

            bool show_bar_file_open = false;
            bool show_bar_file_save = false;
            bool show_bar_file_saveas = false;
            bool show_bar_file_close = false;

            ImGuiWindowFlags window_flags = 0;
            window_flags |= ImGuiWindowFlags_MenuBar;

            ImGuiFileBrowserFlags openFileDialogFlags = 0;
            openFileDialogFlags |= ImGuiFileBrowserFlags_SelectDirectory;
            openFileDialogFlags |= ImGuiFileBrowserFlags_CloseOnEsc;
            openFileDialogFlags |= ImGuiFileBrowserFlags_EnterNewFilename;
            openFileDialogFlags |= ImGuiFileBrowserFlags_CreateNewDir;

            ImGui::FileBrowser openFileDialog(openFileDialogFlags);

            // (optional) set browser properties
            openFileDialog.SetTitle("Open ...");
            // openFileDialog.SetTypeFilters({".png", ".jpg", ".jpeg", ".bmp"});

            bool p_open = true;

            ImGui::Begin("FilterApplier", &p_open, window_flags);

            ImGui::PushItemWidth(ImGui::GetFontSize() * -12);

            // Menu Bar
            if (ImGui::BeginMenuBar())
            {
                if (ImGui::BeginMenu("File"))
                {
                    ImGui::MenuItem("Open", NULL, &show_bar_file_open);
                    ImGui::MenuItem("Save", NULL, &show_bar_file_save);
                    ImGui::MenuItem("Save as..", NULL, &show_bar_file_saveas);
                    ImGui::MenuItem("Close", NULL, &show_bar_file_close);
                    ImGui::EndMenu();
                }
                if (ImGui::BeginMenu("Tools"))
                {
                    ImGui::EndMenu();
                }

                ImGui::EndMenuBar();
            }

            if (show_bar_file_open)
            {
                openFileDialog.Open();
                // show_bar_file_open = false;
                std::cout << "Clicked open dialog" << std::endl;
            }

            openFileDialog.Display();

            if (openFileDialog.HasSelected())
            {
                std::cout << "Selected filename " << openFileDialog.GetSelected().string() << std::endl;
                openFileDialog.ClearSelected();
            }
            ImGui::End();
        }

        // Rendering
        ImGui::Render();
        int display_w, display_h;
        glfwGetFramebufferSize(window, &display_w, &display_h);
        glViewport(0, 0, display_w, display_h);
        glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w);
        glClear(GL_COLOR_BUFFER_BIT);
        ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());

        glfwSwapBuffers(window);
    }

    // Cleanup
    ImGui_ImplOpenGL3_Shutdown();
    ImGui_ImplGlfw_Shutdown();
    ImGui::DestroyContext();

    glfwDestroyWindow(window);
    glfwTerminate();

    return 0;
}

File Browser does not open

I have another problem..
File Browser do not open only in FiveM, but in the directx11 test window the file browser already opens... how to solve it?

Flags are not modifiable after construction

Title says it all. I am wondering why there is no ImGui::FileBrowser::GetFlags() function or a ImGui::FileBrowser::SetFlags(ImGuiFileBrowserFlags flags) function? Instead it can only be done upon construction of the browser object.

For my case I want to be able to save and load things and when saving I want to enable the entering of a file name and when loading I do not. To do so should I be creating a different file browser for each?

Select several files with Shift key pressed

Hi! I have a proposition:
I'd like to see different behaviour when Shift is pressed, re. what happens when Ctrl is pressed. Shift+Click normally selects all files in the range from the previous selection to the currently clicked entry, so it can be used to quickly select several files. Making no difference between Shift and Ctrl is unexpected. With the current behaviour, obtaining large selections is cumbersome. I'd also like a way to quickly select all listed files (like Ctrl+A).

Crash when opening a directory containing a file with a weird character in its extension

What I've done to isolate the issue:

  • I added a file named sequence.🗿 to another folder | ERROR
  • I added a png to another folder, then appended 🗿 to the file extension. I then opened the new folder. | ERROR
  • I made the file with 🗿 in the filename instead of the extension. | NO ERROR

The exception in question:
Unhandled exception at 0x00007FF83338CF19 in program.exe: Microsoft C++ exception: std::system_error at memory location 0x000000B6F7F0CC38.

Call Stack:
KernelBase.dll!00007ff83338cf19()	Unknown

vcruntime140d.dll!00007fffe523b760()	Unknown

program.exe!std::_Throw_system_error_from_std_win_error(const __std_win_error _Errno) Line 65	C++

program.exe!std::_Check_convert_result(const __std_fs_convert_result _Result) Line 72	C++

program.exe!std::_Convert_wide_to_narrow<std::char_traits<char>,std::allocator<char>>(const __std_code_page _Code_page, const std::basic_string_view<wchar_t,std::char_traits<wchar_t>> _Input, const std::allocator<char> & _Al) Line 85	C++

program.exe!std::filesystem::_Convert_wide_to<std::char_traits<char>,std::allocator<char>,char>(const std::basic_string_view<wchar_t,std::char_traits<wchar_t>> _Input, const std::allocator<char> & _Al) Line 152	C++

program.exe!std::filesystem::path::string<char,std::char_traits<char>,std::allocator<char>,0>(const std::allocator<char> & _Al) Line 931	C++

program.exe!std::filesystem::path::string() Line 935	C++

program.exe!ImGui::FileBrowser::IsExtensionMatched(const std::filesystem::path & _extension) Line 890	C++

program.exe!ImGui::FileBrowser::Display() Line 515	C++

program.exe!SDL_main(int argc, char * * args) Line 156	C++

program.exe!main_getcmdline() Line 82	C

[External Code]	

Looking at the call stack and using context, the problem most likely lies in ImGui::FileBrowser::IsExtensionMatched()

Which compiler should I use to compile this library?

Which compiler should I use to compile this library: Visual C++ or GCC?

Look at this code:

#include "headers/imfilebrowser.h"

#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <glm/glm.hpp>
#include <imgui.h>
#include <imgui_impl_glfw.h>
#include <imgui_impl_opengl3.h>
#include <bits/stdc++.h>
using namespace std;

GLFWwindow *window = NULL;

ImGui::FileBrowser fileBrowser;

int main(int argc, char **argv) {
	glfwInit();

	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

	window = glfwCreateWindow(800, 600, "File browser", NULL, NULL);

	glfwSetWindowPos(window, (1920 / 2) - 400, (1080 / 2) - 300);

	glfwSwapInterval(GLFW_TRUE);

	glfwMakeContextCurrent(window);

	gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);

	IMGUI_CHECKVERSION();
	ImGui::CreateContext();
	ImGuiIO &io = ImGui::GetIO();
	(void)io;

	io.IniFilename = NULL;

	ImGui_ImplGlfw_InitForOpenGL(window, true);
	ImGui_ImplOpenGL3_Init();

	do {
		glfwPollEvents();

		ImGui_ImplOpenGL3_NewFrame();
		ImGui_ImplGlfw_NewFrame();
		ImGui::NewFrame();

		ImGui::Render();

		glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
		glClear(GL_COLOR_BUFFER_BIT);

		ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());

		glfwSwapBuffers(window);
	} while (!glfwWindowShouldClose(window));

	ImGui_ImplOpenGL3_Shutdown();
	ImGui_ImplGlfw_Shutdown();
	ImGui::DestroyContext();

	glfwDestroyWindow(window);

	glfwTerminate();
}
ImGui::FileBrowser fileBrowser;

If you remove this line, the program will start, and if you leave it, the program will not respond at all and will not start, without any error.

What can I do in this situation?

I compiled this code with MinGW.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.