|
@@ -222,16 +222,16 @@ int la_filecompsizerev(laFileItem* f1,laFileItem* f2){ return f2->Size - f1->Siz
|
|
|
#ifdef _WIN32
|
|
|
#undef strverscmp
|
|
|
#endif
|
|
|
-void la_SortFiles(laFileBrowser* fb, laListHandle* files){
|
|
|
+void la_SortFiles(laFileBrowser* fb, laListHandle* files, int IsDir){
|
|
|
laListHandle tmp={0}; laFileItem* fi;
|
|
|
FileSortCompF comp = 0;
|
|
|
switch(fb->SortBy){
|
|
|
case LA_FILE_SORT_NAME: default: comp=la_filecompname; break;
|
|
|
case LA_FILE_SORT_NAME_REV: comp=la_filecompnamerev; break;
|
|
|
- case LA_FILE_SORT_TIME: comp=la_filecomptime; break;
|
|
|
- case LA_FILE_SORT_TIME_REV: comp=la_filecomptimerev; break;
|
|
|
- case LA_FILE_SORT_SIZE: comp=la_filecompsize; break;
|
|
|
- case LA_FILE_SORT_SIZE_REV: comp=la_filecompsizerev; break;
|
|
|
+ case LA_FILE_SORT_TIME: comp=IsDir?la_filecompname:la_filecomptime; break;
|
|
|
+ case LA_FILE_SORT_TIME_REV: comp=IsDir? la_filecompnamerev:la_filecomptimerev; break;
|
|
|
+ case LA_FILE_SORT_SIZE: comp=IsDir? la_filecompname :la_filecompsize; break;
|
|
|
+ case LA_FILE_SORT_SIZE_REV: comp=IsDir?la_filecompnamerev:la_filecompsizerev; break;
|
|
|
}
|
|
|
while(fi=lstPopItem(files)){ int inserted=0;
|
|
|
for(laFileItem* fii=tmp.pFirst;fii;fii=fii->Hyper.pNext){
|
|
@@ -333,10 +333,13 @@ void la_FileBrowserRebuildList(laFileBrowser *fb){
|
|
|
lstAppendItem(&fb->FileList, fi);
|
|
|
}
|
|
|
}elif(!fb->SelectFolder) {
|
|
|
+ char* format = strGetLastSegment(FindFileData.cFileName, '.');
|
|
|
+ if (!la_AcceptFileFormat(fb, format)) { goto findnext; }
|
|
|
+
|
|
|
fi = memAcquireSimple(sizeof(laFileItem));
|
|
|
strCopyFull(fi->Name, FindFileData.cFileName);
|
|
|
fi->Size = FindFileData.nFileSizeLow;
|
|
|
- fi->Type = la_DetectFileItemType(fi);
|
|
|
+ fi->Type = la_DetectFileItemType(format);
|
|
|
|
|
|
FileTimeToSystemTime(&(FindFileData.ftLastWriteTime), &stUTC);
|
|
|
SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
|
|
@@ -350,15 +353,15 @@ void la_FileBrowserRebuildList(laFileBrowser *fb){
|
|
|
fi->TimeModified.Second = stLocal.wSecond;
|
|
|
|
|
|
lstAppendItem(&Files, fi);
|
|
|
- //lstAppendItem(&fb->FileList, fi);
|
|
|
}
|
|
|
findnext:
|
|
|
if (!FindNextFile(hFind, &FindFileData))
|
|
|
break;
|
|
|
}
|
|
|
#endif
|
|
|
-
|
|
|
- la_SortFiles(fb, &Files);
|
|
|
+
|
|
|
+ la_SortFiles(fb, &fb->FileList,1);
|
|
|
+ la_SortFiles(fb, &Files,0);
|
|
|
lstCombineLists(&fb->FileList, &Files);
|
|
|
|
|
|
while (dl = lstPopItem(&fb->Disks)) memFree(dl);
|
|
@@ -496,6 +499,10 @@ void la_FileBrowserRefreshThumbnail(laFileBrowser* fb){
|
|
|
md5String(buf,md5); toHexString(md5,fb->MD5);
|
|
|
sprintf(buf,"%s/.cache/thumbnails/normal/%s.png", getenv("HOME"),fb->MD5);
|
|
|
FILE *fp=fopen(buf,"rb"); char* data=0;
|
|
|
+ if(!fp){
|
|
|
+ sprintf(buf, "%s/.cache/thumbnails/large/%s.png", getenv("HOME"), fb->MD5);
|
|
|
+ fp = fopen(buf, "rb");
|
|
|
+ }
|
|
|
if(fp){
|
|
|
fseek(fp, 0, SEEK_END); u64bit SeekEnd = ftell(fp); fseek(fp, 0, SEEK_SET);
|
|
|
data = calloc(1, SeekEnd); fread(data, SeekEnd, 1, fp);
|
|
@@ -2568,7 +2575,7 @@ int OPINV_PanPanel(laOperator *a, laEvent *e){
|
|
|
int OPINV_ToggleSystemConsole(laOperator *a, laEvent *e){
|
|
|
HWND wnd=GetConsoleWindow();
|
|
|
int showhide=IsWindowVisible(wnd)?SW_HIDE:SW_SHOW;
|
|
|
- ShowWindow(wnd,showhide);
|
|
|
+ ShowWindow(wnd, showhide);
|
|
|
return LA_FINISHED;
|
|
|
}
|
|
|
#endif
|