| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- #include <Poco/File.h>
- #include <Atomic/Core/Context.h>
- #include <Atomic/Core/StringUtils.h>
- #include <Atomic/IO/FileSystem.h>
- #include <Atomic/Graphics/Graphics.h>
- #include "FileUtils.h"
- #include "nfd.h"
- namespace AtomicEditor
- {
- FileUtils::FileUtils(Context* context) :
- Object(context)
- {
- }
- FileUtils::~FileUtils()
- {
- }
- String FileUtils::OpenProjectFileDialog()
- {
- nfdchar_t *outPath = NULL;
- nfdresult_t result = NFD_OpenDialog( "atomic",
- NULL,
- &outPath);
- String fullpath;
- if (outPath && result == NFD_OKAY)
- {
- fullpath = outPath;
- }
- GetSubsystem<Graphics>()->RaiseWindow();
- if (outPath)
- free(outPath);
- return fullpath;
- }
- bool FileUtils::CreateDirs(const String& folder)
- {
- FileSystem* fileSystem = GetSubsystem<FileSystem>();
- Poco::File dirs(folder.CString());
- dirs.createDirectories();
- return fileSystem->DirExists(folder);
- }
- String FileUtils::NewProjectFileDialog()
- {
- String projectPath;
- nfdchar_t *outPath = NULL;
- nfdresult_t result = NFD_ChooseDirectory( "Please choose the root folder for your project",
- NULL,
- &outPath);
- if (outPath && result == NFD_OKAY)
- {
- projectPath = outPath;
- }
- GetSubsystem<Graphics>()->RaiseWindow();
- if (outPath)
- free(outPath);
- return projectPath;
- }
- String FileUtils::GetBuildPath(const String& defaultPath)
- {
- String buildPath;
- nfdchar_t *outPath = NULL;
- nfdresult_t result = NFD_ChooseDirectory( "Please choose the build folder",
- defaultPath.Length() ? defaultPath.CString() : NULL,
- &outPath);
- if (outPath && result == NFD_OKAY)
- {
- buildPath = outPath;
- }
- if (outPath)
- free(outPath);
- GetSubsystem<Graphics>()->RaiseWindow();
- return GetInternalPath(buildPath);
- }
- String FileUtils::GetAndroidSDKPath(const String& defaultPath)
- {
- String sdkPath;
- nfdchar_t *outPath = NULL;
- nfdresult_t result = NFD_ChooseDirectory( "Please choose the root folder of your Android SDK",
- defaultPath.Length() ? defaultPath.CString() : NULL,
- &outPath);
- if (outPath && result == NFD_OKAY)
- {
- sdkPath = outPath;
- }
- if (outPath)
- free(outPath);
- GetSubsystem<Graphics>()->RaiseWindow();
- return GetInternalPath(sdkPath);
- }
- void FileUtils::RevealInFinder(const String& fullpath)
- {
- FileSystem* fs = GetSubsystem<FileSystem>();
- if (fs->DirExists(fullpath))
- fs->SystemOpen(fullpath);
- else if (fs->FileExists(fullpath))
- fs->SystemOpen(GetPath(fullpath));
- }
- }
|