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"
|
||||
|
||||
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;
|
||||
_name = std::make_unique_for_overwrite<TCHAR[]>(bufferLength);
|
||||
StringUtil::Copy(_name.get(), fileInfo.GetFileName(), bufferLength);
|
||||
}
|
||||
|
||||
FileInfo::FileInfo(const TCHAR* fileName, const FileType* type, const FastFileRef& fastFileRef)
|
||||
: _type(type), _fastFileRef(fastFileRef)
|
||||
FileInfo::FileInfo(const TCHAR* fileName, const FileType* type, const FastFileRef& fastFileRef, u8 attributes)
|
||||
: _type(type), _fastFileRef(fastFileRef), _attributes(attributes)
|
||||
{
|
||||
u32 bufferLength = strlen(fileName) + 1;
|
||||
_name = std::make_unique_for_overwrite<TCHAR[]>(bufferLength);
|
||||
|
||||
@@ -10,7 +10,7 @@ class FileInfo
|
||||
public:
|
||||
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)
|
||||
{
|
||||
@@ -35,8 +35,13 @@ public:
|
||||
|
||||
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:
|
||||
std::unique_ptr<TCHAR[]> _name;
|
||||
const FileType* _type;
|
||||
FastFileRef _fastFileRef;
|
||||
u8 _attributes;
|
||||
};
|
||||
|
||||
@@ -21,8 +21,10 @@ std::unique_ptr<const FileInfo*[]> SdFolder::FilterAndSort(
|
||||
for (int i = 0; i < _fileCount; i++)
|
||||
{
|
||||
const FileInfo* file = _files[i];
|
||||
bool isHidden = file->GetFileName()[0] == '.' || file->IsHidden();
|
||||
auto classification = file->GetFileType()->GetClassification();
|
||||
if (classification != FileTypeClassification::Unknown)
|
||||
if (classification != FileTypeClassification::Unknown &&
|
||||
(!isHidden || filterSortParams.includeHiddenFiles))
|
||||
{
|
||||
sortedFilteredFiles[filteredCount++] = file;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ std::unique_ptr<SdFolder> SdFolderFactory::CreateFromPath(const char* path) cons
|
||||
? &FolderFileType::sInstance
|
||||
: _fileTypeProvider->GetFileType(sdFileInfo->fname);
|
||||
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);
|
||||
|
||||
@@ -7,9 +7,10 @@ class SdFolderFilterSortParams
|
||||
public:
|
||||
SdFolderSortType sortType = SdFolderSortType::Name;
|
||||
SdFolderSortDirection sortDirection = SdFolderSortDirection::Ascending;
|
||||
bool includeHiddenFiles = false;
|
||||
|
||||
SdFolderFilterSortParams() { }
|
||||
|
||||
SdFolderFilterSortParams(SdFolderSortType sortType, SdFolderSortDirection sortDirection)
|
||||
: sortType(sortType), sortDirection(sortDirection) { }
|
||||
SdFolderFilterSortParams(SdFolderSortType sortType, SdFolderSortDirection sortDirection, bool includeHiddenFiles)
|
||||
: sortType(sortType), sortDirection(sortDirection), includeHiddenFiles(includeHiddenFiles) { }
|
||||
};
|
||||
|
||||
@@ -13,19 +13,19 @@ RomBrowserViewModel::RomBrowserViewModel(IRomBrowserController* romBrowserContro
|
||||
default:
|
||||
{
|
||||
filterSortParams = SdFolderFilterSortParams(
|
||||
SdFolderSortType::Name, SdFolderSortDirection::Ascending);
|
||||
SdFolderSortType::Name, SdFolderSortDirection::Ascending, false);
|
||||
break;
|
||||
}
|
||||
case RomBrowserSortMode::NameDescending:
|
||||
{
|
||||
filterSortParams = SdFolderFilterSortParams(
|
||||
SdFolderSortType::Name, SdFolderSortDirection::Descending);
|
||||
SdFolderSortType::Name, SdFolderSortDirection::Descending, false);
|
||||
break;
|
||||
}
|
||||
case RomBrowserSortMode::LastModified:
|
||||
{
|
||||
filterSortParams = SdFolderFilterSortParams(
|
||||
SdFolderSortType::LastModified, SdFolderSortDirection::Descending);
|
||||
SdFolderSortType::LastModified, SdFolderSortDirection::Descending, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user