mirror of
https://github.com/LNH-team/pico-launcher.git
synced 2026-06-02 09:06:54 +02:00
This commit is contained in:
@@ -4,15 +4,15 @@
|
|||||||
#include "FileInfo.h"
|
#include "FileInfo.h"
|
||||||
|
|
||||||
FileInfo::FileInfo(const FileInfo& fileInfo)
|
FileInfo::FileInfo(const FileInfo& fileInfo)
|
||||||
: _type(fileInfo._type), _fastFileRef(fileInfo._fastFileRef)
|
: _type(fileInfo._type), _fastFileRef(fileInfo._fastFileRef), _attributes(fileInfo._attributes)
|
||||||
{
|
{
|
||||||
u32 bufferLength = strlen(fileInfo.GetFileName()) + 1;
|
u32 bufferLength = strlen(fileInfo.GetFileName()) + 1;
|
||||||
_name = std::make_unique_for_overwrite<TCHAR[]>(bufferLength);
|
_name = std::make_unique_for_overwrite<TCHAR[]>(bufferLength);
|
||||||
StringUtil::Copy(_name.get(), fileInfo.GetFileName(), bufferLength);
|
StringUtil::Copy(_name.get(), fileInfo.GetFileName(), bufferLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
FileInfo::FileInfo(const TCHAR* fileName, const FileType* type, const FastFileRef& fastFileRef)
|
FileInfo::FileInfo(const TCHAR* fileName, const FileType* type, const FastFileRef& fastFileRef, u8 attributes)
|
||||||
: _type(type), _fastFileRef(fastFileRef)
|
: _type(type), _fastFileRef(fastFileRef), _attributes(attributes)
|
||||||
{
|
{
|
||||||
u32 bufferLength = strlen(fileName) + 1;
|
u32 bufferLength = strlen(fileName) + 1;
|
||||||
_name = std::make_unique_for_overwrite<TCHAR[]>(bufferLength);
|
_name = std::make_unique_for_overwrite<TCHAR[]>(bufferLength);
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class FileInfo
|
|||||||
public:
|
public:
|
||||||
FileInfo() { }
|
FileInfo() { }
|
||||||
FileInfo(const FileInfo& fileInfo);
|
FileInfo(const FileInfo& fileInfo);
|
||||||
FileInfo(const TCHAR* fileName, const FileType* type, const FastFileRef& fastFileRef);
|
FileInfo(const TCHAR* fileName, const FileType* type, const FastFileRef& fastFileRef, u8 attributes);
|
||||||
|
|
||||||
FileInfo &operator=(FileInfo&& rhs)
|
FileInfo &operator=(FileInfo&& rhs)
|
||||||
{
|
{
|
||||||
@@ -35,8 +35,13 @@ public:
|
|||||||
|
|
||||||
const FastFileRef& GetFastFileRef() const { return _fastFileRef; }
|
const FastFileRef& GetFastFileRef() const { return _fastFileRef; }
|
||||||
|
|
||||||
|
bool IsReadOnly() const { return _attributes & AM_RDO; }
|
||||||
|
bool IsHidden() const { return _attributes & AM_HID; }
|
||||||
|
bool IsSystem() const { return _attributes & AM_SYS; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<TCHAR[]> _name;
|
std::unique_ptr<TCHAR[]> _name;
|
||||||
const FileType* _type;
|
const FileType* _type;
|
||||||
FastFileRef _fastFileRef;
|
FastFileRef _fastFileRef;
|
||||||
|
u8 _attributes;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -21,8 +21,10 @@ std::unique_ptr<const FileInfo*[]> SdFolder::FilterAndSort(
|
|||||||
for (int i = 0; i < _fileCount; i++)
|
for (int i = 0; i < _fileCount; i++)
|
||||||
{
|
{
|
||||||
const FileInfo* file = _files[i];
|
const FileInfo* file = _files[i];
|
||||||
|
bool isHidden = file->GetFileName()[0] == '.' || file->IsHidden();
|
||||||
auto classification = file->GetFileType()->GetClassification();
|
auto classification = file->GetFileType()->GetClassification();
|
||||||
if (classification != FileTypeClassification::Unknown)
|
if (classification != FileTypeClassification::Unknown &&
|
||||||
|
(!isHidden || filterSortParams.includeHiddenFiles))
|
||||||
{
|
{
|
||||||
sortedFilteredFiles[filteredCount++] = file;
|
sortedFilteredFiles[filteredCount++] = file;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ std::unique_ptr<SdFolder> SdFolderFactory::CreateFromPath(const char* path) cons
|
|||||||
? &FolderFileType::sInstance
|
? &FolderFileType::sInstance
|
||||||
: _fileTypeProvider->GetFileType(sdFileInfo->fname);
|
: _fileTypeProvider->GetFileType(sdFileInfo->fname);
|
||||||
fileInfos[count++] = new FileInfo(sdFileInfo->fname, fileType,
|
fileInfos[count++] = new FileInfo(sdFileInfo->fname, fileType,
|
||||||
FastFileRef(directory.GetFatFsDirectory(), sdFileInfo.get()));
|
FastFileRef(directory.GetFatFsDirectory(), sdFileInfo.get()), sdFileInfo->fattrib);
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::make_unique<SdFolder>(fileInfos, count);
|
return std::make_unique<SdFolder>(fileInfos, count);
|
||||||
|
|||||||
@@ -7,9 +7,10 @@ class SdFolderFilterSortParams
|
|||||||
public:
|
public:
|
||||||
SdFolderSortType sortType = SdFolderSortType::Name;
|
SdFolderSortType sortType = SdFolderSortType::Name;
|
||||||
SdFolderSortDirection sortDirection = SdFolderSortDirection::Ascending;
|
SdFolderSortDirection sortDirection = SdFolderSortDirection::Ascending;
|
||||||
|
bool includeHiddenFiles = false;
|
||||||
|
|
||||||
SdFolderFilterSortParams() { }
|
SdFolderFilterSortParams() { }
|
||||||
|
|
||||||
SdFolderFilterSortParams(SdFolderSortType sortType, SdFolderSortDirection sortDirection)
|
SdFolderFilterSortParams(SdFolderSortType sortType, SdFolderSortDirection sortDirection, bool includeHiddenFiles)
|
||||||
: sortType(sortType), sortDirection(sortDirection) { }
|
: sortType(sortType), sortDirection(sortDirection), includeHiddenFiles(includeHiddenFiles) { }
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -13,19 +13,19 @@ RomBrowserViewModel::RomBrowserViewModel(IRomBrowserController* romBrowserContro
|
|||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
filterSortParams = SdFolderFilterSortParams(
|
filterSortParams = SdFolderFilterSortParams(
|
||||||
SdFolderSortType::Name, SdFolderSortDirection::Ascending);
|
SdFolderSortType::Name, SdFolderSortDirection::Ascending, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RomBrowserSortMode::NameDescending:
|
case RomBrowserSortMode::NameDescending:
|
||||||
{
|
{
|
||||||
filterSortParams = SdFolderFilterSortParams(
|
filterSortParams = SdFolderFilterSortParams(
|
||||||
SdFolderSortType::Name, SdFolderSortDirection::Descending);
|
SdFolderSortType::Name, SdFolderSortDirection::Descending, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RomBrowserSortMode::LastModified:
|
case RomBrowserSortMode::LastModified:
|
||||||
{
|
{
|
||||||
filterSortParams = SdFolderFilterSortParams(
|
filterSortParams = SdFolderFilterSortParams(
|
||||||
SdFolderSortType::LastModified, SdFolderSortDirection::Descending);
|
SdFolderSortType::LastModified, SdFolderSortDirection::Descending, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user